Laravel 4 显示从 1 到1 关系的所有字段


Laravel 4 showing all field from one to one relationship in

我正在尝试显示所选行从一到一关系的所有字段......

路线

Route::get('relasi-pasien', function()
{
$pasien = PasienIri::where('no_ipd', '=', '100')->first();
foreach($pasien->keadaanumum as $temp)
    {
      echo'<li> 
      Name  : '.$temp->name.
     'Tekdar: '.$temp->tekdar.
     'Nadi  : '.$temp->nadi.
     '</li>';
    }
});

帕西恩伊里模型的关系

public function keadaanumum()
{
    return $this->hasOne('KeadaanUmum', 'no_ipd');
}

KeadaanUmum's Model的关系

public function pasieniri()
{
    return $this->belongsTo('PasienIri', 'no_ipd');
}

当我以这种方式使用时,它显示错误:"试图获取非对象的属性">

但是,如果我只想显示其中一个字段,它就可以了,

显示一个字段:

Route::get('relasi-pasien', function()
{
$pasien = PasienIri::where('no_ipd', '=', '100')->first();
return $pasien->keadaanumum->name;
});

任何人都可以帮助我以一对一的关系显示所有字段

还是我真的必须把它改成一对多的关系

?因为如果我把它改成一对多的关系,它就可以了

foreach($pasien->keadaanumum as $temp)

由于这是一对一的关系,因此您无需对其进行foreach。 试试这个:

echo 
  '<li>' . 
    'Name  : ' . $pasien->keadaanumum->name .
    'Tekdar: ' . $pasien->keadaanumum->tekdar .
    'Nadi  : ' . $pasien->keadaanumum->nadi .
  '</li>'
;

您可以按照您所说的操作并将其更改为一对多关系,但您很可能需要从PasienIri表中删除指向KeadaanUmum表的链接,因为这意味着它只会与单个相关条目匹配。 然而,这完全取决于您是否真的想这样做(为每个PasienIri允许许多KeadaanUmum(。