2016-12-25 1 views
6

Ich benutze Laravel 5.3. Ich habe 4 Tische. Standard Users Tabelle. Departments, Position, Employees Tabellen.Laravel 5.3 Abfrage, um Ergebnisse aus 4 Tabellen zu erhalten, die Verbindungen über Fremdschlüssel hat

Users Tabelle hat ID | Email | Password

Departments Tabelle hat ID | Department | User_Id - Hier ist User_Id Fremdschlüssel kommt aus Users Tisch ID

Positions Tabelle ID | Position | Department_Id hat - hier Department_Id Fremdschlüssel kommt von Departments Tabelle ist ID

Employees Tabelle hat ID | Employee | Position_Id - Hier ist Position_Id ist Fremdschlüssel kommt aus Positions Tabelle ID

Benutzer kann mehrere Departments haben. Departments kann mehrere Positions, Positions kann mehrere Employees haben. Also, wenn der Benutzer anders ist, wie kann ich alle Daten aus allen 4 Tabellen, die der Benutzer erstellt hat, abrufen?

Antwort

3

können Sie nested eager loading verwenden:

$departments = Department::where('user_id', $id) 
    ->with('positions', 'positions.employees') 
    ->get(); 

Eine weitere Möglichkeit, einfache Abfragen zu erstellen ist:

$departments = Department::where('user_id', $id)->get(); 
$positions = Position::whereIn('department_id', $departments->pluck('id')); 
$employees = Employee::whereIn('position_id', $positions->pluck('id')); 
+0

Was ist der Unterschied zwischen Ihrer Antwort ist und diese - http://stackoverflow.com/a/ 29166530/3866364 Ich versuchte es auf diese Weise, aber kann die Beziehung nicht richtig erstellen. –

+0

Was meinst du mit Unterschied? Wenn Ihre Beziehungen nicht funktionieren, posten Sie bitte eine andere Frage und fügen Sie Ihren Beziehungscode und die genauen Namen der Fremdschlüssel hinzu (Groß-/Kleinschreibung beachten). –

+0

Sorry für die Verwirrung. Was ich meine ist, deine Antwort hat nur Query. Aber in der Antwort der anderen Frage habe ich obigen Kommentar geteilt, hat Modell benutzt (benutzt für zum Beispiel OneToMany, ManyToOne usw.). Also, was sind die Vorteile der Verwendung von Abfragen wie urs oder die Verwendung von Modal-Beziehungen? –

Verwandte Themen