关于我的问题有很多问题,但我从来没有遇到过这种情况,所以我的代码在这里:
<td>{{ $note->title}}</td>
<td>{{ AppUser::where('id', $note->user)->first()->name }}</td>
<td>{{ date("d.m.Y H:i:s", strtotime($note->created_at)) }}</td>
<td>{{ date("d.m.Y H:i:s", strtotime($note->updated_at)) }}</td>
到目前为止一切正常,除了
<td>{{ AppUser::where('id', $note->user)->first()->name }}</td>
我发现问题$note->user
,它抛出了
(2/2) 错误异常 尝试获取非对象的属性
这对我来说没有任何意义,因为上面$note->title
并且$note->created_at
像魅力一样工作。有什么想法吗?
您应该始终检查用户是否存在:
$user = AppUser::where('id', $note->user)->first();
然后在视图中:
{{ is_null($user) ? 'No user with specified ID' : $user->name }}
此外,在视图中使用 Eloquent 是一个糟糕的主意。
在询问用户名称之前,您需要检查用户是否存在。
您还可以利用雄辩关系,这将从您的视图中删除用户检索。
将用户关系添加到Note
模型
public function user()
{
return $this->belongsTo(AppUser::class, 'user');
}
然后在您的视图中,您可以调用$note->user
如果找到,它将返回一个AppUser
实例,否则null
.
所以打印用户名
<td>{{ $note->user ? $note->user->name : '' }}</td>