UuyelikHesabm Tek seferde haftalık veriyi çekip Collection ile gruplayarak chart verisi oluşturabilirsiniz. Tek sorgu ile halletmiş olduğunuz gibi arada kayıt olmayan günleri de sonuca dahil etmiş olursunuz. Mesela
// Mesela bu sizin veritabanınızdan gelen bir veri. Ben örnek olması için Collection olarak verdim:
$data = collect([
['id' => 1, 'name' => 'n1', 'created_at' => '2022-07-27 10:00'],
['id' => 2, 'name' => 'n2', 'created_at' => '2022-07-27 09:12'],
['id' => 3, 'name' => 'n3', 'created_at' => '2022-07-28 15:00'],
['id' => 4, 'name' => 'n4', 'created_at' => '2022-07-28 18:22'],
['id' => 5, 'name' => 'n5', 'created_at' => '2022-07-29 06:05'],
['id' => 6, 'name' => 'n6', 'created_at' => '2022-07-29 10:00'],
['id' => 7, 'name' => 'n7', 'created_at' => '2022-07-30 11:10'],
['id' => 8, 'name' => 'n8', 'created_at' => '2022-07-31 04:32'],
['id' => 9, 'name' => 'n9', 'created_at' => '2022-07-31 22:50'],
['id' => 10, 'name' => 'n10', 'created_at' => '2022-08-01 00:33'],
['id' => 11, 'name' => 'n11', 'created_at' => '2022-08-02 12:11']
]);
// İstediğiniz tarihi gün olarak alıp gruplayın
$groupedData = $data->groupBy(function($item) {
return Date::parse($item['created_at'])
->toDateString();
})
->toArray();
// Hangi günün olduğu haftayı istiyorsunuz? Mesela bugün:
$dayOfWeek = today();
$results = [];
for ($i=0; $i <7; $i++) {
$day = $dayOfWeek->startOfWeek()
->addDay($i)
->format('Y-m-d');
$results[$day] = $groupedData[$day] ?? null;
}
return $results;
[
"2022-07-25" => null,
"2022-07-26" => null,
"2022-07-27" => [
[
"id" => 1,
"name" => "n1",
"created_at" => "2022-07-27 10:00",
],
[
"id" => 2,
"name" => "n2",
"created_at" => "2022-07-27 09:12",
],
],
"2022-07-28" => [
[
"id" => 3,
"name" => "n3",
"created_at" => "2022-07-28 15:00",
],
[
"id" => 4,
"name" => "n4",
"created_at" => "2022-07-28 18:22",
],
],
"2022-07-29" => [
[
"id" => 5,
"name" => "n5",
"created_at" => "2022-07-29 06:05",
],
[
"id" => 6,
"name" => "n6",
"created_at" => "2022-07-29 10:00",
],
],
"2022-07-30" => [
[
"id" => 7,
"name" => "n7",
"created_at" => "2022-07-30 11:10",
],
],
"2022-07-31" => [
[
"id" => 8,
"name" => "n8",
"created_at" => "2022-07-31 04:32",
],
[
"id" => 9,
"name" => "n9",
"created_at" => "2022-07-31 22:50",
],
],
]