我正在做过滤器脚本。用户写age_to,我得到最大年龄的用户。问题是我的用户表中只有完整的出生日期。我怎样才能获得所有数据?我认为intval函数很好,但我不知道如何在mysql查询中使用它。
$user = User::with('user_x')->whereHas('user_x', function($query) use ($request) {
$birth_date = Carbon::now()->subYears($request->age_to)->toDateString();
return $query->where('date_of_birth', '<=', $birth_date);
})->get();
答案 0 :(得分:1)
Intval可能不会做你想要的,但是Carbon
可能。既然你想要年龄,那就使用Carbon的日期制定者:
$birth_date = Carbon::now()->subYears($request->age_from)->toDateString(); // Sets the birth date to today's date minus the requested years
然后您可以在查询中使用它:
$user = User::with('user_x')->whereHas('user_x', function($query) use ($birth_date) {
return $query->where('date_of_birth', '<=',$birth_date);
})->get();