Я создаю программное обеспечение форума, используя Laravel, и пытаюсь получить доступ к самым последним сообщениям, сделанным в определенной теме, используя latestPost
, как определено в моей модели ниже.
public function latestPost() {
return $this->hasOne('App\Post')->with('thread')->with('author')->latest();
}
Вот как вложенные отношения определены в App\Post.php
public function author()
{
return $this->belongsTo('App\User', 'author_id');
}
public function thread()
{
return $this->belongsTo('App\Thread', 'thread_id');
}
public function topic() {
return $this->belongsTo('App\Topic');
}
Мне удалось получить доступ к сообщениям тем, авторам и т. Д. Без проблем, и когда у меня есть {{ $topic->latestPost }}
в моих представлениях, он будет успешно отображать объект, включая отношения. Но как только я пытаюсь отобразить конкретную часть, например {{ $topic->latestPost->author->username }}
, я получаю следующую ошибку: Trying to get property of non-object
В этом конкретном представлении темы - это еще одна взаимосвязь, извлеченная из категорий, как в Контроллере, и получение $topics
с использованием @foreach
на $categories->topics
:
public function index() {
$categories = Category::orderBy('order', 'asc')->get();
return view('welcome', compact('categories'));
}
Вот дамп $categories
: http://dumptext.com/H8Nq16ea
->toArray()
с этой строкой$categories = Category::orderBy('order', 'asc')->get();
, как это$categories = Category::orderBy('order', 'asc')->get()->toArray();
, а затем предоставляете результаты дампа. - person Qazi   schedule 25.04.2016