雄辩:如何获得相关模型,其中与条件相关模型的计数恰好是n?
这是我面临的问题的简化: -
数据库中有多个课程。一门课程有很多学生。
我需要与20个女学生一起学习课程。所以,我需要两者兼而有之。检查学生人数为20。并检查她们是女性的条件。
现在,我可以使用" wherehas",这不能让我计算相关的学生。实际上,它仅检查至少有一个女学生。
Course
::whereHas('students',function($q){
$q->where('gender','Female');
})
->get()
;
或我可以使用"有",这使我可以计算相关的学生,但不能让我检查他们是否是女性。
Course
::has('students','=','20')
->get()
;
我需要一些让我既可以检查学生的人数又可以检查他们都是女性的事情。需要这样的东西: -
// NOT ALLOWED IN ELOQUENT
Course
::has('students','=','20',function($q){
$q->where('gender','Female');
})
->get()
;
该怎么办?
根据雄辩的关系文档,您可以做这样的事情:
Course
::whereHas('students',function($q){
$q->where('gender','Female');
}, '=', 20)
->get()