Я пытаюсь добавить дополнительную информацию к Laravel красноречивой коллекции на основе счетного числа поля начала (даты). так что сценарий таков, что у меня есть таблица «встреч», я хочу добавить дополнительные атрибуты к объекту в коллекции, возвращаемой eloquent, если в какие-то дни более 10 встреч. Я пробовал много способов, таких как группировка и счет, но не сработало. в любом случае у меня есть код ниже, и я думаю, что я так близок к нему, но я работал над ним, но не мог найти, как заставить его достичь того, чего я хочу. Я думаю, что застрял и больше не могу думать. Я прокомментировал большинство строк.
$allAppointments = Appointment::get($columns); //returning all the appointments
$days = Appointment::get()->groupBy(function ($val) {
return Carbon::parse($val->start)->format('d');
}); //here I'm returning appointments by group without the count
$counter = [];
foreach ($days as $day => $appointments) {
foreach ($appointments as $appointment) {
if (Carbon::parse($appointment->start)->format('d') == $day) {
$counter = [Carbon::parse($appointment->start)->format('d') => $day]; //here I'm trying to make an array and count the days but not working
}
dd($counter);
foreach ($allAppointments as $allAppointment) {
if (Carbon::parse($allAppointment->start)->format('d') == $day && count($counter) == 10) //here I want to compare the dates and check if that day have more than 10 appointments
$allAppointment->setAttribute('backgroundColor', 'red'); //here I want to add the extra information
}
}
}