Menjumlahkan data pertanggal berdasarkan periode bulan yang sudah di tentukan pada laravel

Saya sedang membuat laporan bulanan pada aplikasi saya, dimana dalam laporan ini menampilkan jumlah/total data transaki pembayaran pertanggal dalam periode bulan tertentu yang ditentukan melalui request input, tapi saya kesulitan mengimplementasikannya dalam laravel, sejauh ini saya mencoba dengan cara berikut :

$data = Pembayaran::select([
	DB::raw('count(id) as `count`'), 
	DB::raw('DATE(created_at) as day')
	])->groupBy('day')
	->where('created_at', '>=', Carbon::now()->subWeeks(1))
	->get();

$output = [];
foreach($data as $entry) {
	$output[$entry->day] = $entry->count;
}

dd($output);

Hasil Outputnya seperti ini :
array:5 [▼
  "2021-01-01" => 1
  "2021-01-03" => 1
  "2021-01-04" => 3
  "2021-01-05" => 1
  "2021-01-07" => 1
]

Meskipun ini hanya menampilkan tanggal yang mempunyai data saja tapi Ini mendekati apa yang saya harapkan, saya berharap bisa menampilkan semua tanggal dalam periode bulan yang sudah di tentukan meskipun hasil perhitungannya NOL (0)/Tidak ada data.
avatar Supriono

@Supriono

74 Kontribusi 11 Poin


Jawaban

silahkan dicoba menjumlah data per tanggal dalam satu bulan di laravel
contoh di bawah masukkan $month dan $year sebagai filter bulan dan tahun

Table::select('created_at')                                             
->whereMonth('created_at', '=', date($month))                        
->whereYear('created_at', '=', date($year))                        
->orderBy('created_at')                        
->get()->groupBy(function($time) {                            
   return Carbon::parse($time->created_at)->format('Y-m-d');                        
});
avatar hilmanski

@hilmanski

2271 Kontribusi 1904 Poin


Login untuk gabung berdiskusi