雄辩:如何获得一个具有条件的相关模型的计数的模型?

问题描述 投票:2回答:1

雄辩:如何得到一个模型,其中一个条件的相关模型的数量正好是n?

以下是我所面临的问题的简化: -

数据库中有多个课程。一门课程有很多学生。

我需要为20名女学生开设课程。所以,我需要做两件事。检查学生人数是否为20.并检查他们是女性的情况。

现在我可以使用“wherehas”,这不会让我算上相关的学生。事实上,它只检查是否至少有一名女学生。

Course
    ::whereHas('students',function($q){
        $q->where('gender','Female');
    })
    ->get()
;

或者我可以使用“has”来让我计算相关的学生但是不让我检查他们是否是女性。

Course
    ::has('students','=','20')
    ->get()
;

我需要一些能让我检查学生数量并检查他们都是女性的东西。需要这样的东西: -

// NOT ALLOWED IN ELOQUENT
Course
    ::has('students','=','20',function($q){
        $q->where('gender','Female');
    })
    ->get()
;

该怎么办?

laravel count eloquent one-to-many wherehas
1个回答
4
投票

根据Eloquent Relationships文档,您可以执行以下操作:

Course
    ::whereHas('students',function($q){
        $q->where('gender','Female');
    }, '=', 20)
    ->get()
© www.soinside.com 2019 - 2024. All rights reserved.