Как группировать и считать записи по дате с помощью Laravel? - PullRequest
0 голосов
/ 25 июня 2018

У меня есть выпуски таблицы, в ней есть столбец create_at и status , который может быть «Открыт» или «Закрыт»

Мне нужно получить количество вопросов в зависимости от статуса за месяц.Я хочу получить что-то вроде этого:

January 2018: {
  open: 300,
  closed: 28,
},
February 2018: {
  open: 250,
  closed: 80
}

Я не знаю, есть ли лучший подход, я открыт для предложений о том, как мне получить данные.По сути, я создаю панель администратора и хочу отобразить данные в виде диаграммы.

1 Ответ

0 голосов
/ 25 июня 2018

Если вы используете MySQL:

$months = Issue::select(
    DB::raw("date_format(created_at, '%M %Y') month"),
    DB::raw("sum(if(status = 'Open', 1, 0)) open"),
    DB::raw("sum(if(status = 'Closed', 1, 0)) closed")
)->groupBy('month')->get();

Вы можете установить ключ с помощью keyBy():

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