Я добавил пользовательский атрибут age (в месяцах), например:
// Приведен, чтобы я мог использовать экземпляр Carbon
protected $dates = ['date_of_birth'];
// Возвращает age в месяце
public function getAgeAttribute(){
if(empty($this->date_of_birth){
return null;
}
return $this->date_of_birth->diffInMonths();
}
Затем я добавил возраст, чтобы я мог глобально использовать age , например:
protected $appends = ['age'];
Теперь мне нужно использовать месяц возраста при создании отчета, который отображается на основе возраст месяц:
Как я могу фильтровать на основе возраст в коллекции пользователей?
// Общая настройка
$ages = [10, 20, 30, ...];
$users = User::get();
$requiredDetail = [];
Попытка 1
Я пытался использовать , где предложение, но не работает
foreach($ages as $age){
$requiredDetail[$age] = $users->where('age', $age)->count();
}
Попытка 2
Я пытался использовать фильтр коллекции, но он не работает
foreach($ages as $age){
$requiredDetail[$age] = $users->filter(function($user) use ($age){
return $user->age == $age;
});
}
Вопрос в том, как я могу отфильтровать приведенный возраст после извлечения его из коллекции?