计算具有范围和关系的两行(Laravel)

时间:2015-06-19 23:04:33

标签: php mysql laravel laravel-5 laravel-5.1

所以我有两个表,一个叫members,一个叫memberships

我的目标是计算拥有特定会员资格的会员数量。我已经设置了外键并且关系正常工作,我需要进行计数。

我的范围是(在Member模型中)

public function scopeActive($query) {
    return $query->where('membership_ended_at', Null);
}

我的关系是(在Member模型中)

public function membership() {
    return $this->belongsTo('App\Membership');
}

此查询工作正常,我看到active()membership_id的成员数为$members_student = Membership::find(6)->members()->active()->count();

$members_student = Membership::find([6,14])->members()->active()->count();

我不知道这是否应该有用,但确实如此。现在,我的问题是我们有正式的学生会员资格,以及ID为14的海外学生会员资格。

我想也许这会奏效,但我很快意识到我错了

XmlDocument

我知道我可以调用两个查询并将两者加在一起,但我正在寻找更优雅的解决方案。只需要一个查询的东西,一半是我的查询。

希望其他人在此之前见过这个

1 个答案:

答案 0 :(得分:1)

感谢laravel.io上的某个人聊天,我成功地想出了这个。在此处发布以防其他人也在寻找答案。

解决方案:

$members_student = Member::whereIn('membership_id', [6,14])->active()->count();