【发布时间】:2018-11-08 02:06:38
【问题描述】:
我正在尝试根据 Laravel 中的年龄进行搜索查询。但是,当我尝试在两个日期之间进行查询时,我没有得到任何结果。我的代码如下:
$today = Carbon::today();
$age_from = $today->subYears($request->age_from)->toDateString();
$age_to = $today->subYears($request->age_to)->toDateString();
$users->whereBetween('birthday', [$age_from, $age_to]);
//Get matching users.
$users = $users->Paginate(self::paginate);
当我使用 mySql() 查看时,查询看起来正确,但由于某种原因,我没有得到任何结果。可能是语法错误? toDateString的错误使用和MySQL的日期比较?
编辑: $age_from 的输出是:
Carbon @959558400 {#245 ▼
date: 2000-05-29 00:00:00.0 UTC (+00:00)
}
$age_to 的输出是:
Carbon @-302745600 {#245 ▼
date: 1960-05-29 00:00:00.0 UTC (+00:00)
}
【问题讨论】:
-
不是 100% 确定,但我认为您不需要这样做
toDateString。 laravel querybuilder 接受碳日期 -
你能发布
var_dump($age_from)和var_dump($age_to)的输出吗? -
刚刚尝试删除它,但我仍然没有得到任何结果。
-
@Djave,我已经用输出更新了我的问题。
-
较早的日期必须在前。