2015-10-04 70 views
1

关系我有2个表如下:Laravel 4:计算内whereHas

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 
}) 

回答

0

最后能得到它一起工作的下列内容:

Subscription::whereRaw(' 
    (select count(*) from `attendances` where `attendances`.`subscription_id` = `subscriptions`.`id`) < `subscriptions`.`entrance_limit` 
'); 
0

型号查询低于

Subscription::whereHas('attendances', function($q) { 
    $q->where('entrance_limit','>',$q->count()); 
})