由于方法名称,hasOne()没有返回关系

时间:2016-12-27 20:03:02

标签: php laravel laravel-5 eloquent relationship

我正在使用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}}

这个有效。

导致城市方法名称出现问题的原因是什么? 我从未在其他项目中使用城市方法名称。

1 个答案:

答案 0 :(得分:2)

您似乎在代码中的其他位置使用 city 作为对象的属性 - 它已包含值,因此使用此值而不是关系。

查找您设置 $ listing-> city 值的某些地方,尝试使用 dd($ listing-> city)获取线索。如果你找不到它,请发布更多的代码,因为错误位于其他地方,而不是你发布的内容。