2016-07-22 40 views
0

Ich habe 4 verschiedene Modelle. Aber nicht die Beziehung, die ich benutzen soll Modelle: County, Municipality, Postal und Zip. Tabelle und Primärschlüssel sind in jedem Modell richtig eingestellt.Laravel eloquent Beziehung mehrere Modelle

In County Modell Ich habe hinzugefügt:

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

In Municipality Modell I hinzugefügt haben:

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

Und in Postal Modell habe ich hinzugefügt:

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

Ich habe das getestet: County::findOrFail(1)->municipality; und ich t funktioniert. Aber wie würde ich die Posts bekommen, die zu dieser spezifischen Gemeinde gehören?

Ich kann das nicht tun: County::findOrFail(1)->municipality->postal; was ich dachte, ich könnte. Aber ich kann sehen, dass ich noch nicht den Dreh raus habe.

Wie würde ich das tun? Vielen Dank im Voraus.

Datenbankstruktur: http://pastebin.com/ts0D5juq

Antwort

0

Sie etwas verpasst:

County::findOrFail(1)->municipality; 

Hier haben Sie die municipality Gebiet der Grafschaft nicht das eigentliche Objekt.

Sie haben Ihre Funktionen zu verwenden:

County::findOrFail(1)->municipality()->postal(); 
+0

Wenn ich versuche, die oben (Funktionen) zu verwenden, erhalte ich eine Fehlermeldung: 'Call to undefined Methode Illuminate \ Database \ Abfrage \ Builder :: Post() ' – Kaizokupuffball

+0

Versuchen Sie Folgendes:' County :: findOrFail (1) -> Gemeinde() -> zuerst() -> Post() -> zuerst(); ' – Vuldo

+0

Vielen Dank! Sieht so aus, als ob das der Trick ist. Also muss ich 'first()' nach jeder Beziehungsmethode verwenden? – Kaizokupuffball

Verwandte Themen