У меня есть этот пользовательский атрибут в модели:
Код: Выделить всё
public function getAgeAttribute(): int
{
if (!$this->deleted) {
$date = substr($this->social_security, 0, 6);
switch (substr($this->social_security, 6, 1)) {
case '-':
$yy = '19';
break;
case 'A':
$yy = '20';
break;
case '+':
$yy = '18';
break;
default:
return 0;
}
$birthday = new \DateTime($yy . substr($date, 4, 2) . '-' . substr($date, 2, 2) . '-' . substr($date, 0, 2));
$today = new \DateTime('today');
return $birthday->diff($today)->y;
}
return 0;
}
Код: Выделить всё
$count = Student::where('deleted', 0)
->whereHas('studentSeasons', function($query) {
$query->whereHas('season', function($query) {
$query->where('start', '=', now());
});
})
->get()
->append('age')
->where('age', '>=', $request->input('start'))
->where('age', '
Подробнее здесь: [url]https://stackoverflow.com/questions/79141426/how-to-create-a-query-with-custom-attributes-in-laravel-eloquent[/url]