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

我有两个名为DataKelurahan和 的模型RegistrasiPasien,并且具有一对多关系,但我无法访问该关系。

我制作了一个用于添加患者的表格并将其保存到表格中registrasi_pasiens,效果很好。但是当我尝试显示关系数据时,它无法正常工作。

registrasi_pasiens表中,我有 1 条记录kelurahan_id = 3php artisan tinker然后,我尝试通过以下命令访问它:

  1. $kelurahan = App\Domain\DataKelurahan\Models\DataKelurahan::find(3)工作正常并且数据存在。

  2. $pasien = App\Domain\RegistrasiPasien\Models\RegistrasiPasien::find(2007000001)工作正常并且数据存在kelurahan_id = 3

  3. $kelurahan->pasiens结果是null. 它不应该显示 kelurahan_id = 3 的 pasien 数据吗?

  4. $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

<?php


namespace 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


<?php


namespace 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');

    }

}

下面是我的数据库表:


数据_kelurahans


Schema::create('data_kelurahans', function (Blueprint $table) {

   $table->increments('id');

   $table->string('nama_kelurahan');

   $table->string('nama_kecamatan');

   $table->string('nama_kota');

   $table->timestamps();

});

达令说
浏览 145回答 1
1回答

慕无忌1623718

来自文档:Eloquent 将自动确定模型上正确的外键列。按照惯例,Eloquent 将采用所属模型的“蛇形案例”名称,并添加后缀_id.hasMany因此,Eloquent 可能会弄错你的外键名称,因此你必须通过向/方法传递附加参数来覆盖外键belongsTo:public function pasiens(){  return $this->hasMany('RegistrasiPasien','kelurahan_id');}public function kelurahan(){  return $this->belongsTo('DataKelurahan','kelurahan_id');}
打开App,查看更多内容
随时随地看视频慕课网APP