Ich erstelle ein Forum Software Laravel und ich versuche, die neuesten Beiträge in einem bestimmten Thema latestPost
in meinem Modell wie unten definiertVerschachtelte Eager Laden Beziehungen in Laravel
public function latestPost() {
return $this->hasOne('App\Post')->with('thread')->with('author')->latest();
}
Hier verwenden gemacht zuzugreifen, ist wie die verschachtelten Beziehungen in 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');
}
definiert sind
ich in der Lage gewesen Beiträge von Themen, Autoren etc. problemlos zugreifen zu können, und wenn ich {{ $topic->latestPost }}
in meinen Ansichten habe, wird es das Objekt einschließlich relat Liste Ionenschiffe erfolgreich. Aber sobald ich versuche, einen bestimmten Teil anzuzeigen wie {{ $topic->latestPost->author->username }}
ich die folgende Störung erhalte: Trying to get property of non-object
In dieser spezifischen Sicht sind Themen noch eine andere Beziehung von Kategorien wie so im Controller gezogen und bekommt $topics
ein @foreach
mit auf $categories->topics
:
public function index() {
$categories = Category::orderBy('order', 'asc')->get();
return view('welcome', compact('categories'));
}
ist hier ein Dump $categories
: http://dumptext.com/H8Nq16ea
verwenden können, können Sie Ihr dieses Objekt drucken '$ categories = Category :: orderBy ('order', 'asc') -> get();' und Add-up-Dump-Array-Ergebnisse in Ihrer Frage? – Qazi
Hinzugefügt am unteren Rand! Es ist ziemlich lang, also habe ich es auf den Dumptext geworfen. –
ca fügen Sie '-> toArray()' '' mit Ihrer dieser Zeile '$ categories = Category :: orderBy ('order', 'asc') -> get();' wie folgt ein $ categories = Category :: orderBy ('order', 'asc') -> get() -> toArray(); 'und dann die Dump-Ergebnisse angeben. – Qazi