Php laravel WHERRAW查询错误

Php laravel WHERRAW查询错误,php,mysql,laravel-5,Php,Mysql,Laravel 5,这是我的MySQL查询,我将其转换为laravel,下面是错误,请建议如何修复 $shiftData= DB::table(DB::raw('shifts')) ->whereRaw("time_sheet_id = $getTimesheet1->time_sheet_id AND user_id = $user_id->user_id") ->whereRaw("$shift_start_time BETWEEN shift_start_time

这是我的MySQL查询,我将其转换为laravel,下面是错误,请建议如何修复

$shiftData=   DB::table(DB::raw('shifts'))
    ->whereRaw("time_sheet_id = $getTimesheet1->time_sheet_id AND user_id = $user_id->user_id")
    ->whereRaw("$shift_start_time BETWEEN shift_start_time AND shift_end_time OR $shift_end_time BETWEEN shift_start_time AND shift_end_time OR $shift_start_time >= shift_start_time AND $shift_end_time <= shift_end_time")
    ->get();
  $shift_end_time = $request->input('shift_end_time');
$shift_start_time = $request->input('shift_start_time');
$shiftData=DB::table(DB::raw('shifts'))
->whereRaw(“时间表\u id=$getTimesheet1->时间表\u id和用户\u id=$user\u id->user\u id”)

->其中,“$shift\U start\U time和shift\U end\U time之间的$shift\U start\U time或$shift\U start\U time>=shift\U start\U time和$shift\U end\U time您的sql查询看起来像一个伪代码

应在sql查询之前定义“班次开始时间”和“班次结束时间”

试着这样做:

$shift_end_time = $request->input('shift_end_time');
$shift_start_time = $request->input('shift_start_time');

$shiftData=   DB::table('shifts')
    ->where(time_sheet_id, $getTimesheet1->time_sheet_id)
    ->where(user_id, $user_id->user_id)
    ->whereBetween('shift_start_time', array($shift_start_time, $shift_end_time))
    ->whereBetween('shift_end_time', array($shift_start_time, $shift_end_time))
    ->where('shift_end_time', '>=', 'shift_start_time')
    ->get();

你需要把你的时间值(16:00:00,20:00:00)用引号括起来。。。
$shift_end_time = $request->input('shift_end_time');
$shift_start_time = $request->input('shift_start_time');

$shiftData=   DB::table('shifts')
    ->where(time_sheet_id, $getTimesheet1->time_sheet_id)
    ->where(user_id, $user_id->user_id)
    ->whereBetween('shift_start_time', array($shift_start_time, $shift_end_time))
    ->whereBetween('shift_end_time', array($shift_start_time, $shift_end_time))
    ->where('shift_end_time', '>=', 'shift_start_time')
    ->get();