Laravel 4 - 找出两个模型之间是否存在M:N关系

时间:2014-07-11 07:42:12

标签: laravel-4 eloquent

我有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;

我怎么能实现这个目标?

1 个答案:

答案 0 :(得分:1)

count是检查关系是否存在的首选方式。

您的代码无效,因为您的数据透视表也有id列,where子句不明确,因此将其更改为:

where('users.id','=',$user->id)