我有代码来检查数据透视表中是否有用户ID,以及检查他是否支持或投票(1或-1)
{{ $post->votes->where('id', $user->id)->first()->pivot->vote }}
但由于某些原因,这种情况不起作用,即使它在我死亡和转储时在控制器中工作,或者甚至在dd()中的刀片文件中也能工作。编辑:错误显示“试图获取非对象的属性'枢轴'”。我该如何解决这个问题?
答案 0 :(得分:1)
您收藏的某些项目必须为空,这就是您收到错误的原因。首先,您应该检查您是否有该条件的投票
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;
}
答案 1 :(得分:0)
您需要首先检查是否有任何投票,然后您可以使用pivot->vote
,在一行中实现这一点,您可以使用optional
帮助方法
{{ optional($post->votes->where('id', $user->id)->first()->pivot)->vote }}
还要确保您已从控制器<{1}}加载votes
关系