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_id6 个。

$members_student = Membership::find(6)->members()->active()->count();

我不知道这是否应该起作用,但确实如此。现在,我遇到的问题是我们有一个普通的学生会员,还有一个 ID 为 14 的海外学生会员。

我以为这可能会奏效,但我很快意识到我错了

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

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

希望其他人以前看过这个

4

1 回答 1

1

感谢 laravel.io 聊天中的某个人,我设法解决了这个问题。在这里发布它以防其他人也在寻找答案。

解决方案:

$members_student = Member::whereIn('membership_id', [6,14])->active()->count();
于 2015-06-20T00:28:11.093 回答