Carbonを使います。
$age['from']歳から$age['to']歳までを検索するとき
test.php
if (!empty($age)){
if(!empty($age['from'])){
$latestBirthday = Carbon::now()->subYear($age['from'])->format('Y-m-d');
$user->where('birthday', '<=', $latestBirthday);
}
if(!empty($age['to'])){
$earliestBirthday = Carbon::now()->subYear($age['to'] + 1)->addDay()->format('Y-m-d');
$user->where('birthday', '>=', $earliestBirthday);
}
}
考え方としては
- $age['from']歳の人の誕生日で一番新しい日より古い誕生日の人
- $age['to']歳の人の誕生日で一番古いより新しい誕生日の人
を検索してるだけです。