繁体   English   中英

Laravel 4:计算在哪里有关系

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM