我有两个名为DataKelurahan和 的模型RegistrasiPasien,并且具有一对多关系,但我无法访问该关系。我制作了一个用于添加患者的表格并将其保存到表格中registrasi_pasiens,效果很好。但是当我尝试显示关系数据时,它无法正常工作。在registrasi_pasiens表中,我有 1 条记录kelurahan_id = 3。php artisan tinker然后,我尝试通过以下命令访问它:$kelurahan = App\Domain\DataKelurahan\Models\DataKelurahan::find(3)工作正常并且数据存在。$pasien = App\Domain\RegistrasiPasien\Models\RegistrasiPasien::find(2007000001)工作正常并且数据存在kelurahan_id = 3$kelurahan->pasiens结果是null. 它不应该显示 kelurahan_id = 3 的 pasien 数据吗?$kelurahan->pasiens->nama结果是这样的PHP Notice: Trying to get property 'nama' of non-object in D:/PROFESSIONAL/PROJECT/WEB DEVSeval()'d code on line 1 => null我不知道我的代码有什么问题。非常感谢你们的帮助。以下是我制作的模型:数据Kelurahan.php<?phpnamespace App\Domain\DataKelurahan\Models;use Illuminate\Database\Eloquent\Model;use App\Domain\RegistrasiPasien\Models\RegistrasiPasien;class DataKelurahan extends Model{ protected $fillable = ['nama_kelurahan', 'nama_kecamatan','nama_kota']; public function pasiens(){ return $this->hasMany('RegistrasiPasien'); }}注册Pasien.php<?phpnamespace App\Domain\RegistrasiPasien\Models;use Illuminate\Database\Eloquent\Model;use App\Domain\DataKelurahan\Models\DataKelurahan;class RegistrasiPasien extends Model{ protected $fillable = [ 'nama', 'alamat', 'telepon', 'rt', 'rw', 'tgl_lahir', 'jenis_kelamin' ]; public function kelurahan(){ return $this->belongsTo('DataKelurahan'); }}下面是我的数据库表:数据_kelurahansSchema::create('data_kelurahans', function (Blueprint $table) { $table->increments('id'); $table->string('nama_kelurahan'); $table->string('nama_kecamatan'); $table->string('nama_kota'); $table->timestamps();});
1 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
来自文档:
Eloquent 将自动确定模型上正确的外键列。按照惯例,Eloquent 将采用所属模型的“蛇形案例”名称,并添加后缀
_id
.
hasMany
因此,Eloquent 可能会弄错你的外键名称,因此你必须通过向/方法传递附加参数来覆盖外键belongsTo
:
public function pasiens(){
return $this->hasMany('RegistrasiPasien','kelurahan_id');
}
public function kelurahan(){
return $this->belongsTo('DataKelurahan','kelurahan_id');
}
- 1 回答
- 0 关注
- 144 浏览
添加回答
举报
0/150
提交
取消