2016-12-27 1 views
0

Я использую laravel 5.3, у меня есть таблица с таблицей hasOne с таблицей городов.hasOne() не возвращает отношения из-за имени метода

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}} 

Это один работает.

В чем причина проблемы с именем города? У меня никогда не было проблемы с именем метода города в других проектах.

ответ

2

Похоже, вы используете город как атрибут объекта где-то еще в вашем коде - он уже содержит значение, поэтому это значение используется вместо отношения.

Посмотрите на некоторые места, где вы установили значение $ listing-> город, попробуйте сделать дд ($ listing-> города) для подсказки. И если вы не можете найти его, добавьте еще несколько своих кодов, поскольку ошибка лежит где-то в другом месте, чем то, что вы опубликовали до сих пор.