为了账号安全,请及时绑定邮箱和手机立即绑定

一对多关系 Laravel 无法显示相关数据

一对多关系 Laravel 无法显示相关数据

PHP
达令说 2023-07-08 22:09:49
我有两个名为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');

}


查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信