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

Count two rows with scopes and relationships (Laravel)

所以我有两张表,一张叫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 为 6。

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

我不知道这是否有效,但确实有效。现在,我遇到的问题是,我们有一个普通的学生会员,一个ID为14的海外学生会员。

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

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

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

希望之前有人看过这个

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

解决方法:

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