无法从 Eloquent 访问数据:关系,以及未检索到某些数据

Cannot acess data from Eloquent: Relationships, as well some data is not retrieved

我想显示我视图中 table 之间关系的数据,其中关系是:

所有 3 个 table 都有字段 'nome'

视图中的页面将显示:

但是我有两个问题:

  1. 我得到了我需要的'Disciplina'的数据,但是其中一些没有显示关联的'Professor'的数据。
  2. 当我尝试从 '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');
}