我想在我的视图中显示来自表之间关系的数据,其关系是:
所有3个表都有'nome'字段
View中的页面将显示:
但我有两个问题:
我的'Disciplina'模型
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);
我在View中的表
<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'
当我尝试显示'教授'字段'nome'时,我更改了代码:
<td> {{$disciplina->professor->nome}} </td>
但是当我这样做时,我收到此错误“试图获取非对象的属性”。
答案 0 :(得分:1)
以下内容不正确:
public function professor(){
return $this->belongsTo('App\Model\Professor','id');
}
如果disciplinas
表包含外键professor_id
,那么关系应该只是:
public function professor(){
return $this->belongsTo('App\Model\Professor');
}