学校のプラットフォームでは、特定の学校のクラスに登録されているすべての生徒をリストしたいと思います。このリストでは、id、last_name、first_name、各生徒のクラス名を見たいと思います。ネストされた関係を読み込むことを熱望しています
Id +フルネームは問題ありませんが、すべてのリレーションシップを読み込んでグレードで完全なクラス名を表示することはできません。
私の関係は、次のとおりです。
student -> hasMany -> Enrollments
-----------Enrollments -> belongsTo -> offering
--------------------------offering -> belongsTo -> schoolClasses
--------------------------offering -> belongsTo -> schoolyears
--------------------------------------schoolClass -> belongsTo -> grade
クラス名は、グレード名+クラス名(例えば保育園1 + A)の外に構成されています。
$students = Student::with('offerings.schoolClasses.grades')->get();
return view('student.overview', ['students' =>$students]);
と、この:私のコントローラでこれを行うことにより
:
は現在、私はこの作業を持っている:
私のEERは以下の通りです私の見解では:
@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
誰かが最終的なビットを手伝ってもらえますか?私は私の中の私の関係の定義、間違っていたものを見つけ
{{$student->offerings->schoolClasses->grades->grade}}
あなたのEER画像には「学生」モデルがありません。 –
生徒はユーザーです。申し訳ありませんが、私はそれについて言及しませんでした。学生モデルは、ユーザーモデルに基づいたモデルですが、ユーザーが登録されているかどうかを確認します。 –
enrollementが "join"テーブルであるとか、Laravelと同じように "ピボット"テーブルと呼ばれています。 [多対多の関係に関するLaravelのドキュメント](https://laravel.com/docs/5.5/eloquent-relationships#many-to-many)のヘルプを利用できます。あなたも同様の場合があります。 –