我正在使用laravel 5.3,我的列表表与hasOne关系到cities表。
public function city()
{
return $this->hasOne('App\City', 'id', 'city_id');
}
在我看来
{{$listing->city->name}}
这个原因错误
尝试获取非对象的属性
但是当我将方法名称更改为除城市以外的其他名称时,
public function foo()
{
return $this->hasOne('App\City', 'id', 'city_id');
}
在我看来
{{$listing->foo->name}}
这个有效。
导致城市方法名称出现问题的原因是什么? 我从未在其他项目中使用城市方法名称。
答案 0 :(得分:2)
您似乎在代码中的其他位置使用 city 作为对象的属性 - 它已包含值,因此使用此值而不是关系。
查找您设置 $ listing-> city 值的某些地方,尝试使用 dd($ listing-> city)获取线索。如果你找不到它,请发布更多的代码,因为错误位于其他地方,而不是你发布的内容。