雄辩地讲:如何获得一个条件下相关模型的数量恰好为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()
;
该怎么办?
答案 0 :(得分:4)
根据Eloquent Relationships文档,您可以执行以下操作:
Course
::whereHas('students',function($q){
$q->where('gender','Female');
}, '=', 20)
->get()