Model Event
-> id, guests_count, status. Model Guest
-> id, event_id, confirmed.
I need something like this:
Event::where('status', 'opened')->whereNotIn('id', $nId)
->has('guests', '<' , XXX)
->get();
Instead XXX
I need to use guests_count
value - different value for each event - is this possible?
I'm trying to get all not filled events (count of guests
relation < guests_count
).
I'm using Laravel 5.4.
Use this:
Event::where('status', 'opened')->whereNotIn('id', $nId)
->withCount('guests as count')
->having('guests_count', '>', DB::raw('`count`'))
->get();
did you need this ?
Event::select([DB::raw('count(guests) as count'),'id'])
->where('status','opened')
->whereNotIn('id', $nId)
->groupBy('guests')
->having('count','>',10)
->get();
sql output
select count(guests) as count, `id` from `event` where `status` = 'opened' and `id` not in ([1,2,3]) group by `guests` having `count` > 10