如何计算嵌套在二级 groupBy 中的项目?
How to count items that are nested inside a second level groupBy?
$bookings = Salon::find(3)->bookings;
$bookings->groupBy(['booking_status', function ($item) {
return \Carbon\Carbon::parse($item['created_at'])->format('Y-m');
}])->toArray();
这给了我下面。
"confirmed" => [
"2020-12" => [
[],[],[],[]
]
];
但是,我正在寻找类似下面的内容:
"confirmed" => [
"2020-12" => 4
];
既然你有两级分组,想在第二级计数,那么你可以这样做:
$bookings = Salon::find(3)->bookings;
$bookings->groupBy(['booking_status', function ($item) {
return \Carbon\Carbon::parse($item['created_at'])->format('Y-m');
}])->map(function ($dateGroup) {
return $dateGroup->map->count();
})->toArray();
$bookings = Salon::find(3)->bookings;
$bookings->groupBy(['booking_status', function ($item) {
return \Carbon\Carbon::parse($item['created_at'])->format('Y-m');
}])->toArray();
这给了我下面。
"confirmed" => [
"2020-12" => [
[],[],[],[]
]
];
但是,我正在寻找类似下面的内容:
"confirmed" => [
"2020-12" => 4
];
既然你有两级分组,想在第二级计数,那么你可以这样做:
$bookings = Salon::find(3)->bookings;
$bookings->groupBy(['booking_status', function ($item) {
return \Carbon\Carbon::parse($item['created_at'])->format('Y-m');
}])->map(function ($dateGroup) {
return $dateGroup->map->count();
})->toArray();