У меня есть две таблицы:Laravel красноречивым модель отношения не работают на шаблоне лезвия
Persons
id, name, foto_id
и
Fotos
id, url
На Person
модели, я добавил:
public function foto() {
return $this->hasOne("App\\Foto","id","foto_id");
}
Обратите внимание, что мне нужно было избежать
\F
...
Когда я пытаюсь {{ $person->foto->url }}
, я получаю «пытается получить доступ свойство не-объекта» ошибка. Если я {{ print_r($person->foto()) }}
я просто 1
...
Я следовал Laravel документы, и это tutorial
Это проект я создаю, чтобы узнать Laravel, так что любой полезный совет ценится!
Edit:
В artisan tinker
, $person->foto->url
работы по назначению, возвращает Foto
объект просто отлично ...
Так что мне нужно связать отношения на обоих концах (Person 'hasOne' Foto, а Foto' ownTo' Person)? –
Другой способ: модель, представляющая таблицу, которая содержит FK, использует функцию 'ownTo'. Модель, представляющая таблицу, которая содержит PK, использовала функцию 'hasOne' или' hasMany'. – Blaatpraat
Это, кажется, мое недоразумение! 'Person' имеет' Foto', поэтому я помещал FK (?) Foto_id в таблицу 'Person', а таблица' Fotos' имела только поля 'id' и' url'. Итак, только Человек должен знать, что это за фотографии, и ни один из них не должен знать о том, кому они принадлежат. –