Для API диаграммы мне нужно указать количество зарегистрированных пользователей в день.
//fetch all created_at dates of users from the last week
$signUpsLastWeek = User::whereDate('created_at', '>=', now()->subDays(7))->select('created_at')->get();
//group them now by date now, using collection operations
dd($signUpsLastWeek->groupBy(function($item) {
return $item->created_at->format('m.d');
}));
//now manipulate the collection a bit, so we get the date with the amount of new registered users
$signUpsLastWeek->mapWithKeys(function ($userGroup, $key) {
return [$key => $userGroup->count()];
})
Возвраты:
Illuminate\Database\Eloquent\Collection {#774 ▼
#items: array:1 [▼
"01.19" => 4
]
}
Это отлично работает, вопрос оставлен.
В приведенном выше примере кода в остальные дни зарегистрировано 0 новых регистраций, что означает, что коллекция должна выглядеть примерно так:
Illuminate\Database\Eloquent\Collection {#774 ▼
#items: array:1 [▼
"01.25" => 0,
"01.24" => 0,
"01.23" => 0,
"01.22" => 0,
"01.20" => 0,
"01.19" => 4,
...,
]
}
Есть идеи, как включить также 0 значений?