laravel关系belongsTo和方法

时间:2018-09-28 07:09:21

标签: laravel eloquent

我的Laravel关系有问题。我在控制器中使用了with()方法,在我的模型中使用了beforeTo。我的关系很正常,但是如果我得到父母的数据,就会出现问题。

我的模型

public function pekerjaan()
{
    return $this->belongsTo('App\Pekerjaan', 'pekerjaan', 'id');
}

这是我的控制器

 $data = Anggota::with('pekerjaan')->where('nik',$nik)->first();
 return $data;

我想在我的关系“ pekerjaan”中获取列“ nama_pekerjaan” I want to get column 'nama_pekerjaan' in my relation 'pekerjaan'

如果我使用return $data->pekerjaan->nama_pekerjaan; 显示错误 enter image description here

1 个答案:

答案 0 :(得分:1)

您有一个名为pekerjaan的列和一个名为pekerjaan的关系。 Laravel对列名的重视程度超过关系。因此,您可以使用属性pekerjaan获取列值(pekerjaan的列)。为您的关系命名,以解决此别名问题。

在您的模型中。

function pekerjaan_parent(){
   return $this->belongsTo('App\Pekerjaan', 'pekerjaan', 'id');
}

发挥作用

return $data->pekerjaan_parent->nama_pekerjaan;