Laravel数据透视表计数范围方法的where子句

时间:2018-02-21 05:57:03

标签: php mysql database laravel laravel-5

以下是我模特的关系:

音乐会

客户

场地属于音乐会(一对多)

Timeslots属于场地(一对多)

门票(多对多客户和时段)

我正在尝试将多个时间段关系的计数作为我的模型Venue的范围方法中where子句的一部分。

public function scopeGetConcertVenuesThatHaveSlotsRemains($query, $concert_id)
{
    $query->where('concert_id', $concert_id);
    $query->whereHas('timeslots', function ($query2) {
        $query2->where('slots', '>=', "Ticket.counts"); 
    });
}

如何获取Ticket.counts值?

1 个答案:

答案 0 :(得分:2)

我自己得到了答案。

public function scopeGetConcertVenuesThatHaveSlotsRemains($query, $concert_id)
{
    $query->where('concert_id', $concert_id);
    $query->whereHas('timeslots', function ($query2) {
        $query2->withCount('customers')->whereColumn('slots', '>', 'customers_count'); 
    });
}