我需要使用Laravel 5.4显示课程所有学生的分数,所以我做了一个这样的表; 在控制器中:
$courses = Courses::find($id);
$marks = Marks::where([
['course_id','=',$id]
])->orderBy('id','asc')->get();
return view('courses.show', compact('courses','marks'));
在视图中:
<table class="table table-hover">
<thead class="text-center">
<th class="text-center">
<b>Alumno</b>
</th>
</thead>
<tbody class="text-left">
@foreach($courses->tests-> as $t)
<tr>
<td>
<b>{{ $t->info->apaterno }} {{ $t->info->amaterno }}, {{ $t->info->name }}</b>
</td>
@foreach($courses->number->pupil as $m)
<td>
Nota {{ $m->mark }}
</td>
@endforeach
</tr>
@endforeach
</tbody>
</table>
所以,我的问题如下。我如何作为<th>
作为测试,然后列出这么多<td>
,条件是每个标记都属于一个学生。
答案 0 :(得分:0)
当你有关系时它起作用,假设在Courses
模型中你有这样的关系:
public function marks()
{
return $this->belongsTo('App\Marks');
}
然后你可以使用eager loading
这样的东西:
$courses = Courses::find($id)->with('marks');
这将为您提供与其相关联的标记,而且效率更高。
有关详细信息,请参阅文档:https://laravel.com/docs/5.4/eloquent-relationships#eager-loading
希望这有帮助。