Vì vậy, để tham khảo, tôi đã giải quyết nó như vậy:
$query = Person::leftJoin('actions', function($q) use ($user)
{
$q->on('actions.person_id', '=', 'persons.id')
->where('actions.user_id', '=', "$user");
})
->groupBy('persons.id')
->where('type', 'foo')
->get(['persons.id', 'full_name', DB::raw('count(actions.id) as total')]);
->where()
mệnh đề trong leftJoin
, kỳ lạ, cần các dấu giọng nói để biến được chuyển qua truy vấn sql một cách chính xác (tương tự như vậy, '2' dường như không hoạt động trong khi "2" thì có).