我有两个模型,一个是轮询,另一个是用户。我在他们两个之间建立了M: N关系:
使用者php
public function votedPolls() {
return $this->belongsToMany('Polls', 'votes');
}
Poll.php
public function voters() {
return $this->belongsToMany('User', 'votes');
}
这一切都很好。当我对投票进行投票时,表投票
将被正确填充。但是现在我想检查控制器内部是否有用户已经在投票中投票。
我想应该是这样的,但我不确定语法。我试过这个(不起作用):
$voters = $poll->voters()->where('id', '=', $user->id)->first();
$voted = count($voters) == 1;
我怎样才能做到这一点?
count
是检查是否存在关系的首选方法。
您的代码不起作用,因为透视表还有id
列和where
子句不明确,所以将其更改为:
where('users.id','=',$user->id)