【发布时间】:2017-07-29 16:10:02
【问题描述】:
我想在我的视图中显示来自表之间关系的数据,关系在哪里:
- Curso 1 --- * Disciplina.
- 学科 * -- 1 名教授。
所有 3 个表都有字段 'nome'
View 中的页面将显示:
- 表 'Curso' 的字段 'nome'。
- 包含 2 列的 HTML 表格:
- 表 'Disciplina' 的字段 'nome'。
- “Professor”表的“nome”字段。
但我有两个问题:
- 我得到了我需要的 'Disciplina' 的数据,但其中一些没有显示关联的 'Professor' 的数据。
- 当我尝试从“学科”中访问“教授”的“教授”字段时,当我尝试在表格中列出它时出现错误。
我的“纪律”模型
public function professor(){
return $this->belongsTo('App\Model\Professor','id');
}
我的控制器
$curso = Curso::find($id);
$curso->disciplinas();
foreach ($curso->disciplinas as $key => $disciplina) {
$disciplina->professor;
}
return View::make('curso.showCurso')->with('curso', $curso);
我在视图中的表格
<tbody>
@foreach ($curso->disciplinas as $key => $disciplina)
<tr>
<td> {{$disciplina->nome}} </td>
<td> {{$disciplina->professor}} </td>
</tr>
@endforeach
</tbody>
这张图片显示了表格的一部分,其中第一行没有显示教授,其余行显示了教授的所有字段。
Table showing all fields of 'professor'
当我尝试显示“Professor”的“nome”字段时,我更改了以下代码:
<td> {{$disciplina->professor->nome}} </td>
但是当我这样做时,我得到了这个错误“尝试获取非对象的属性”。
【问题讨论】:
标签: laravel laravel-5 eloquent blade