У меня возникли некоторые проблемы с проектом Laravel 5.2, который, кстати, первый с этим фреймворком, так что я новичок.
Дело в том, что я определил отношения между этими двумя таблицами «поставщик» и «менеджер», чтобы менеджер мог управлять одним поставщиком, а поставщик — одним менеджером.
Модели:
Менеджер класса
public function suppliers(){
return $this->hasMany('App\Supplier','id');
}
///////
Класс поставщика
public function manager(){
return $this->belongsTo('App\Manager','id');
}
Хорошо. Итак, из того, что я прочитал до сих пор, доступ к шаблону блейда к данным менеджера, встроенным в поставщика, должен быть таким простым:
$supplier->manager->name
Но то, что я действительно получаю, это ошибка, которая говорит
Попытка получить свойство необъекта
Что мне здесь не хватает?
Хорошо. Теперь я чувствую себя глупо.
Все, что нужно, это правильно определить ключ поиска, который, конечно, я делал неправильно.
Я внимательно проверил свое определение внешнего ключа в таблице поставщиков и понял, что поле id отсутствует. Вместо этого у меня есть поле с именем ‘manager_id’, поэтому все, что нужно, это изменить это:
public function manager(){
return $this->belongsTo('App\Manager','id');
}
к этому:
public function manager(){
return $this->belongsTo('App\Manager','manager_id');
}
И это все. Наконец-то я могу получить доступ ко всем встроенным данным менеджера через поставщика. Извините за мою глупую ошибку. Спасибо вам всем.
Других решений пока нет …