У меня проблемы с форматированием результатов запроса Eloquent.
У меня есть таблица Клубы, и она хранит футбольные клубы. Каждая запись в базе данных имеет значение «бренд», и теперь я хочу возвращать количество значений бренда в столбце за каждый день. Например: сегодня я добавил в таблицу 9 раз «Реал» и 40 раз «Барселона», поэтому ожидаю возвращаемое значение за каждый день в прошлом месяце, например:
[
{
"date": "2019-01-12",
"clubs": {
"Barcelona": 40,
"Real": 9
}
}
]
Вместо этого я получаю:
[
{
"date": "2019-01-12",
"count": 9,
"brand": "Real"
},
{
"date": "2019-01-12",
"count": 40,
"brand": "Barcelona"
}
]
Вот мой запрос контроллера:
$brandsMonthlyInfo = array();
$dates = collect();
foreach( range( -30, 0 ) AS $i ) {
$date = Carbon::now()->addDays( $i )->format( 'Y-m-d' );
$dates->put( $date, 0);
}
$countAddedBrands = DB::table('Clubs')->where([['created_at', '>=', $dates->keys()->first()]])
->groupBy( 'date' )
->groupBy( 'brand' )
->orderBy( 'date' )
->get( [
DB::raw( 'DATE( created_at ) as date' ),
DB::raw( 'COUNT(brand) AS "count"' ),
'brand'
] );
return $countAddedBrands;
У вас есть идеи, как это исправить? Я действительно ценю любую помощь.