雄辩查询的条件

时间:2017-10-03 17:54:09

标签: php mysql laravel eloquent

我需要使用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>,条件是每个标记都属于一个学生。

1 个答案:

答案 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

希望这有帮助。