Laravel eloquent查询中的Intval函数

时间:2017-11-01 12:28:42

标签: php mysql laravel

我正在做过滤器脚本。用户写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();

1 个答案:

答案 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();