无法从 Eloquent 访问数据:关系,以及未检索到某些数据
Cannot acess data from Eloquent: Relationships, as well some data is not retrieved
我想显示我视图中 table 之间关系的数据,其中关系是:
- 光标 1 --- * 纪律。
- 学科 * -- 1 位教授。
所有 3 个 table 都有字段 'nome'
视图中的页面将显示:
- table'Curso'的字段'nome'。
- A HTML table 有 2 列:
- table'Disciplina'的字段'nome'。
- table'Professor'的字段'nome'。
但是我有两个问题:
- 我得到了我需要的'Disciplina'的数据,但是其中一些没有显示关联的'Professor'的数据。
- 当我尝试从 'Disciplina' 访问 'Professor' 的 'nome' 字段时出现错误,当我试图将它列在 table 中时。
我的'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);
我的 table 在视图中
<tbody>
@foreach ($curso->disciplinas as $key => $disciplina)
<tr>
<td> {{$disciplina->nome}} </td>
<td> {{$disciplina->professor}} </td>
</tr>
@endforeach
</tbody>
此图片显示了 table 的一部分,其中第一行未显示教授,其余行显示教授的所有字段。
Table showing all fields of 'professor'
当我尝试显示 'Professor' 的字段 'nome' 时,我更改了以下代码:
<td> {{$disciplina->professor->nome}} </td>
但是当我这样做时我得到这个错误 "Trying to get property of non-object".
以下是不正确的:
public function professor(){
return $this->belongsTo('App\Model\Professor','id');
}
如果 disciplinas
table 包含外键 professor_id
,那么关系应该是:
public function professor(){
return $this->belongsTo('App\Model\Professor');
}
我想显示我视图中 table 之间关系的数据,其中关系是:
- 光标 1 --- * 纪律。
- 学科 * -- 1 位教授。
所有 3 个 table 都有字段 'nome'
视图中的页面将显示:
- table'Curso'的字段'nome'。
- A HTML table 有 2 列:
- table'Disciplina'的字段'nome'。
- table'Professor'的字段'nome'。
但是我有两个问题:
- 我得到了我需要的'Disciplina'的数据,但是其中一些没有显示关联的'Professor'的数据。
- 当我尝试从 'Disciplina' 访问 'Professor' 的 'nome' 字段时出现错误,当我试图将它列在 table 中时。
我的'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);
我的 table 在视图中
<tbody>
@foreach ($curso->disciplinas as $key => $disciplina)
<tr>
<td> {{$disciplina->nome}} </td>
<td> {{$disciplina->professor}} </td>
</tr>
@endforeach
</tbody>
此图片显示了 table 的一部分,其中第一行未显示教授,其余行显示教授的所有字段。
Table showing all fields of 'professor'
当我尝试显示 'Professor' 的字段 'nome' 时,我更改了以下代码:
<td> {{$disciplina->professor->nome}} </td>
但是当我这样做时我得到这个错误 "Trying to get property of non-object".
以下是不正确的:
public function professor(){
return $this->belongsTo('App\Model\Professor','id');
}
如果 disciplinas
table 包含外键 professor_id
,那么关系应该是:
public function professor(){
return $this->belongsTo('App\Model\Professor');
}