我想在给定的时间段内获得一个列表,如下所示:
public function UsersWork() { return $this->hasMany('App\Models\UsersWork', 'user_id')->whereBetween('end', ["DATE_SUB(CURDATE() INTERVAL 5 YEAR)", date('Y-m-d')]); }
这将返回整个列表,而不仅仅是5年时间段的预期列表。
你能找出这种行为的原因吗?
答案 0 :(得分:0)
如果要使用原始sql函数,则必须使用DB::raw()
。
public function UsersWork()
{
return $this->hasMany('App\Models\UsersWork', 'user_id')
->where(function($q){
$q->where(DB::raw('recur_at BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW()'));
});
}
可能需要在类声明之前在顶部添加use DB;
。