Php 由于方法名,hasOne()未返回关系

Php 由于方法名,hasOne()未返回关系,php,laravel,laravel-5,eloquent,relationship,Php,Laravel,Laravel 5,Eloquent,Relationship,我使用的是Laravel5.3,我有一个listings表和cities表有一个关系 public function city() { return $this->hasOne('App\City', 'id', 'city_id'); } 依我看 {{$listing->city->name}} 这会导致错误 正在尝试获取非对象的属性 但当我将方法名称更改为“城市以外”时 public function foo() { return $this->h

我使用的是Laravel5.3,我有一个listings表和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}}
这个有效

城市方法名称出现问题的原因是什么?
我对其他项目中的城市方法名称从来没有问题。

看起来您在代码的其他地方使用了城市作为对象的属性-它已经包含了值,因此使用该值而不是关系


寻找一些您设置$listing->city值的地方,尝试执行dd($listing->city)以获取线索。如果找不到,请多发布一些代码,因为错误不在您目前发布的代码中。

看起来您在代码中的其他地方使用了城市作为对象的属性-它已经包含该值,因此使用该值而不是关系

寻找一些您设置$listing->city值的地方,尝试执行dd($listing->city)以获取线索。如果你找不到它,就多发一些代码,因为错误不在你目前发布的代码中