Pra*_*rve -1 php laravel eloquent laravel-5.5
我试着得到这样的东西
select * from `users`
inner join `settings`
on `users`.`id` = `settings`.`user_id`
and NOW() NOT BETWEEN quit_hour_start AND quit_hour_end
where `notification_key` != ''
and `device_type` = 'Android'
Run Code Online (Sandbox Code Playgroud)
雄辩的.有人试图在eloquent中成功构建此查询.我知道我可以使用\DB::select(DB::raw());并得到我的结果.但我想使用与Laravel雄辩的方法.
======更新已尝试查询的评论========
$androidUser = User::join('settings', function ($join) {
$join->on('users.id', '=', 'settings.user_id')
->where(DB::raw("'$currentTime' NOT BETWEEN quit_hour_start AND quit_hour_end"));
})
->where('notification_key', '!=', '')
->where('device_type' ,'=', 'Android')
->get();
Run Code Online (Sandbox Code Playgroud)
$users = DB::table('users')
->whereNotBetween('votes', [1, 100]) // For one column
->whereRaw("? NOT BETWEEN quit_hour_start AND quit_hour_end", [$currentTime]) // Use whereRaw for two columns
->get();
Run Code Online (Sandbox Code Playgroud)
https://laravel.com/docs/5.5/queries,或者你可以重写一下