Für eine Schulplattform möchte ich mit allen Studenten, die in einer Klasse mit einer bestimmten Schuljahr eingeschrieben sind Liste haben. In dieser Liste möchte ich die ID, last_name, first_name und den Klassennamen jedes Schülers sehen.Eager Laden verschachtelten Beziehungen
Der vollständige Name + + ist kein Problem, aber das Laden aller Beziehungen und das Anzeigen des vollständigen Klassennamens mit Grad funktioniert nicht.
meine Beziehungen sind wie folgt:
student -> hasMany -> Enrollments
-----------Enrollments -> belongsTo -> offering
--------------------------offering -> belongsTo -> schoolClasses
--------------------------offering -> belongsTo -> schoolyears
--------------------------------------schoolClass -> belongsTo -> grade
Der Klassenname Name aus der Klasse Namen + Klasse besteht (zum Beispiel Kindergarten 1 + A).
Mein EER ist wie folgt:
Zur Zeit habe ich diese Arbeit:
Durch dieses in meinem Controller tun:
$students = Student::with('offerings.schoolClasses.grades')->get();
return view('student.overview', ['students' =>$students]);
und diese aus meiner Sicht:
@foreach($students as $student)
<tr>
<th scope="row">{{$student->id}}</th>
<td>{{$student->first_name}}</td>
<td>{{$student->last_name}}</td>
<td>{{$student->offerings}}</td>
</tr>
@endforeach
Könnte jemand mir helfen, die letzten Bits zu bekommen?
Ihr EER Bild fehlt 'Student' Modell. –
Studenten sind Benutzer, tut mir leid, ich habe das nicht erwähnt. Das Schülermodell ist ein Modell, das auf dem Benutzermodell basiert, überprüft jedoch, ob ein Benutzer angemeldet ist. –
Ich sehe Einschreibung ist eine "Join" -Tabelle, oder wie Laravel nennen es eine "Pivot" -Tabelle. Du könntest Hilfe von [Laravel Dokumentation über Beziehungen von Vielen zu Vielen] (https://laravel.com/docs/5.5/eloquent-relationships#many-to-many) verwenden. Sie werden einen ähnlichen Fall von Ihnen finden. –