2017-07-19 7 views
0

Hallo ich bin neu in Laravel und verwende derzeit Laravel 5.2. Ich versuche, eine Anwendung zu erstellen, wo ich Beiträge und Kommentare und Kommentare habe Antworten Tabelle und haben das folgende Modell.Laravel eins zu viele zu viele Beziehung

Beitrag Modell

public function comments() { 
    return $this->hasMany('App\Comment'); 
} 

Kommentar Modell

public function posts() { 
    return $this->belongsTo('App\Post'); 
} 

public function replies() { 
    return $this->hasMany('App\Reply'); 
} 

Antworten Modell

public function comments() { 
    return $this->belongsTo('App\Comment'); 
} 

Was ich ac wollen hievt:

Beitrag mit Kommentaren mit Antworten für Beitrag

Post -> viele Kommentare -> viele Antworten

Ich bin in der Lage Kommentare zu erhalten, mit folgenden

$posts = Post::with('comments')->get(); 

Aber nicht wissen, So erhalten Sie Kommentare mit der Antwort

Antwort

0

Sie sollten

tun können

Außerdem sollten Sie immer Antworten von einem Kommentar wie diesem erhalten: ->replies. Seien Sie vorsichtig, wenn Sie nicht alle Antworten geladen haben, können Sie Hunderte von Abfragen an die Datenbank senden, jeder Kommentar sendet eine Abfrage zum Abrufen von Antworten. Wenn Sie alle Kommentare wie die obige Abfrage abrufen, erhalten Sie alle Antworten auf einmal und Laravel wird sie den entsprechenden Kommentaren zuordnen.

Es gibt auch einige gute Beispiele, die Sie aus der Laravel-Dokumentation lesen können: Eloquent: Relationships - Eager loading