Laravel blade 在没有 dd() 时显示错误,但可以使用它
Laravel blade shows error when there is no dd(), but works with it
我有代码检查数据透视表中是否有用户 ID table,如果有则检查他是否赞成或反对(1 或 -1)
{{ $post->votes->where('id', $user->id)->first()->pivot->vote }}
但出于某种原因,这将不起作用,即使它在我死亡和转储时在控制器中工作,甚至在 dd() 中时在 blade 文件中工作。编辑:错误显示 "Trying to get property 'pivot' of non-object"。我该如何解决这个问题?
您需要先检查是否有任何投票,然后您可以使用 pivot->vote
,要在一行中实现,您可以使用 optional
辅助方法
{{ optional($post->votes->where('id', $user->id)->first()->pivot)->vote }}
同时确保您已从您的控制器
加载 $post
上的 votes
关系
您 collection 的某些项目必须为空,这就是您收到错误的原因。首先,你应该检查你是否有满足该条件的投票
if ($post->votes->where('id', $user->id)->first()) {
// do stuff
}
然后还要检查 pivot
属性,例如
$post = $post->votes->where('id', $user->id)->first();
if ($post && $post->pivot) {
echo $post->pivot->vote;
}
我有代码检查数据透视表中是否有用户 ID table,如果有则检查他是否赞成或反对(1 或 -1)
{{ $post->votes->where('id', $user->id)->first()->pivot->vote }}
但出于某种原因,这将不起作用,即使它在我死亡和转储时在控制器中工作,甚至在 dd() 中时在 blade 文件中工作。编辑:错误显示 "Trying to get property 'pivot' of non-object"。我该如何解决这个问题?
您需要先检查是否有任何投票,然后您可以使用 pivot->vote
,要在一行中实现,您可以使用 optional
辅助方法
{{ optional($post->votes->where('id', $user->id)->first()->pivot)->vote }}
同时确保您已从您的控制器
加载$post
上的 votes
关系
您 collection 的某些项目必须为空,这就是您收到错误的原因。首先,你应该检查你是否有满足该条件的投票
if ($post->votes->where('id', $user->id)->first()) {
// do stuff
}
然后还要检查 pivot
属性,例如
$post = $post->votes->where('id', $user->id)->first();
if ($post && $post->pivot) {
echo $post->pivot->vote;
}