Составьте группу с помощью оператора Laravel. - PullRequest
0 голосов
/ 25 апреля 2019

Я пишу небольшой скрипт для загрузки Attendee_logs, основанный на подсчете общего количества отпечатков за час.

Сначала я загружаю идентификаторы от участников

$allAttendees->pluck('id')->implode(',')

Таким образом, я получаю 389832, 321321 от этого (это идентификаторы участников, основанные на группе).

Теперь я хочу сгруппировать их по часам.Но я не могу узнать, как добавить оператор whereIn

$badgesPrintedByDate = DB::table('Attendee_logs')->select(DB::raw('hour(created_at)'), DB::raw('COUNT(id)'))->whereIn('id', [$allAttendees->pluck('id')->implode(',')])->groupBy(DB::raw('hour(created_at)'));

Когда я делаю это таким образом, я получаю пустой результат.Но когда я удаляю whereIn, я получаю результат.

Итак, мой вопрос: как мне посчитать строки, основанные на часе, и где я также даю идентификаторы с ним:)?

1 Ответ

1 голос
/ 25 апреля 2019

Я думаю, что это сработает:

$badgesPrintedByDate = DB::table('Attendee_logs')->select(DB::raw('hour(created_at)'), DB::raw('COUNT(id)'))->whereIn('id', $allAttendees->pluck('id')->all())->groupBy(DB::raw('hour(created_at)'));

Вместо того, чтобы говорить:

$allAttendees->pluck('id')->all()

, который возвращает массив идентификаторов, вы также можете сказать: '

$allAttendees->pluck('id')->values()

Или:

$allAttendees->pluck('id')->toArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...