我有2个模型,一个是民意调查,另一个是用户。我在两者之间建立了M:N关系:
user.php的
public function votedPolls() {
return $this->belongsToMany('Polls', 'votes');
}
Poll.php
public function voters() {
return $this->belongsToMany('User', 'votes');
}
这一切都很好用。当我对投票进行投票时,表格votes
会正确填充。但是现在我想检查控制器内是否有用户投票。
我认为它会是这样的,但我不确定语法。我试过这个(不工作):
$voters = $poll->voters()->where('id', '=', $user->id)->first();
$voted = count($voters) == 1;
我怎么能实现这个目标?
答案 0 :(得分:1)
count
是检查关系是否存在的首选方式。
您的代码无效,因为您的数据透视表也有id
列,where
子句不明确,因此将其更改为:
where('users.id','=',$user->id)