我在Laravel 5.1上具有空值的模型上的关系存在问题。
我有2个表任务和用户。在“任务”中,我具有id_requester和id_responsible列。
我想显示所有任务,我总是有一个请求者,但有时我还没有一个负责人。
因此,在这种情况下,id_responsible为null。
我的模特是:
protected $table = 'tasks';
protected $fillable = array(
'id_requester',
'id_responsible',
);
public function requester()
{
return $this->hasOne('app\User', 'id', 'id_requester');
}
public function responsible()
{
return $this->hasOne('app\User', 'id', 'id_responsible');
}
Run Code Online (Sandbox Code Playgroud)
我的控制器中的查询是:
$tasks = Tasks::get();
Run Code Online (Sandbox Code Playgroud)
我试图在这样的视图中显示:
<table>
...
@foreach($tasks as $task)
<td>{{ $task->requester->name }}</td>
<td>{{ $task->responsible->name }}</td>
@endforeach
...
</table>
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试访问该页面时,出现错误“试图获取非对象的属性”。
我已经测试过了,这只有在我有一个id_responsible = Null的时候。
如何解决此问题以显示所有寄存器?
谢谢!!!