Небольшая заметка про использование в Eloquent count вместе с groupBy.
Тут всё дело в особенности работы count() вместе с groupBy(). Подробнее можно почитать тут.
Вкратце дело вот в чём. Если использовать ->get()->count()
, то идёт подсчёт элементов коллекции и мы получаем нужный результат. А вот если просто ->count()
(без ->get()
), то чистый запрос будет вида select count(*) as aggregate ...
, что вместе с having
даёт нам неверный результат.
Как вариант решения можно вместо ->get()->count()
использовать ->getCountForPagination()
, но это уже не так явно и может быть проблемой при поддержке кода.