【发布时间】:2017-11-28 13:34:53
【问题描述】:
对于一个学校平台,我想列出所有在某个学年注册的班级的学生。在这个列表中,我想查看每个学生的 id、last_name、first_name 和班级名称。
Id+全名没问题,但是加载所有关系,显示全类名和等级就不行了。
我的关系如下:
student -> hasMany -> Enrollments
-----------Enrollments -> belongsTo -> offering
--------------------------offering -> belongsTo -> schoolClasses
--------------------------offering -> belongsTo -> schoolyears
--------------------------------------schoolClass -> belongsTo -> grade
班级名称由年级名称+班级名称组成(例如Nursery 1 + A)。
我的 EER 如下:
目前我有这个工作:
通过在我的控制器中执行此操作:
$students = Student::with('offerings.schoolClasses.grades')->get();
return view('student.overview', ['students' =>$students]);
在我看来:
@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
有人可以帮我弄到最后的部分吗?
【问题讨论】:
-
您的 EER 图片丢失
Student模型。 -
学生是用户,抱歉我没有提到。学生模型是基于用户模型的模型,但会检查用户是否注册。
-
我看到注册是一个“加入”表,或者像 Laravel 所说的那样,一个“数据透视”表。您可以使用Laravel documentation on relationships Many to Many 的帮助。你会发现一个类似的案例。