Определяя обратное отношение в Eloquent, вы должны назвать свое динамическое свойство таким же, как ваша родственная модель?Соглашения о присвоении имен Laravel Eloquent ORM
class Book extends Eloquent {
public function author()
{
return $this->belongsTo('Author');
}
}
$books = Book::all()
foreach ($books as $book) {
echo $book->author->firstname;
}
В приведенном выше примере, я должен вызвать этот метод автор или я могу назвать это что-то другое? Я пытался назвать его чем-то другим (просто из любопытства), но затем возвращает null, следовательно, ошибки «Попытка получить свойство не-объекта».
EDIT: Я получил его на работу, передавая внешний ключ belongsTo, как это:
класс Книга расширяет красноречивый {
public function daauthor()
{
return $this->belongsTo('Author', 'author_id');
}
}
$book = Book::find(55);
dd($book->daauthor);
Может кто-нибудь объяснить, почему?
Вы можете назвать все, что захотите :). Какая была ошибка и имя функции, которую вы пытались? –
, если я изменяю Book :: author() в Book: daauthor() и назову его как: $ book-> daauthor, я возвращаю null. – skaterdav85
Я могу переименовать свои красноречивые функции в любом случае, попробовал это в моем проекте Laravel4. Функция 'BelongsTo()' ничего не делает с именем вашей функции. Может быть, вы упустили что-то в своем коде? –