[英]Laravel 4: Count relationship within whereHas
我有2张桌子,如下所示:
Subscription
表具有一个entrance_limit
列,并且具有hasMany('Attendance')
关系。 entrance_limit
列实际上将限制Attendance
的行数。 例如,如果entrance_limit
值为10,那么我们只能在Attendance
创建10行。
Attendance
表具有一个belongsTo('Subscription')
关系。
如何获得总Attendance
少于entrance_limit
值的Subscription
列表?
Subscription::whereHas('attendances', function($q) {
## something like this
$q->count() < subscription->entrance_limit
})
对您的查询进行建模
Subscription::whereHas('attendances', function($q) {
$q->where('entrance_limit','>',$q->count());
})
终于可以通过以下方法使它起作用:
Subscription::whereRaw('
(select count(*) from `attendances` where `attendances`.`subscription_id` = `subscriptions`.`id`) < `subscriptions`.`entrance_limit`
');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.