Laravel Eloquent 在一个查询中的 where and or between

Laravel Eloquent where and or between in one query

你好,Laravel eloquent 代码是什么:

SELECT *
  FROM dtrs
 inner join emp_informations
    on dtrs.enrollnum = emp_informations.enrollnum
 where (emp_informations.EmpID = '07081408')
   and (date_in between '2015-03-05' and '2015-03-20' and
       date_out between '2015-03-05' and '2015-03-20')
 ORDER BY dtrs . date_in DESC

这是我在 eloquent 中的代码,它显示的结果与原始查询不同。

  $dtrs=Dtr::Join('emp_informations','dtrs.enrollnum','=','emp_informations.enrolnum')
          ->where('emp_informations.first_name','like',"%$id%")
          ->orWhere('emp_informations.last_name','like',"%$id%")
          ->whereBetween('dtrs.date_in', array('2015-03-05' , '2015-03-20'))
          ->orderBy('dtrs.date_in','Desc')->paginate(15);

 return view('timetrack' , compact('dtrs'));

我的代码有什么问题?

我已经更改了您的查询中的某些内容,请试试这个:

  $dtrs=Dtr::Join('emp_informations','dtrs.enrollnum','=','emp_informations.enrolnum')
          ->where('emp_informations.EmpID','=','07081408')
          ->whereBetween('dtrs.date_in', array('2015-03-05' , '2015-03-20'))
          ->whereBetween('dtrs.date_out', array('2015-03-05' , '2015-03-20'))
          ->orderBy('dtrs.date_in','Desc')->paginate(15);

如果你有变量,你可以这样写:

->whereBetween('dtrs.date_in', array($fromdate , $todate))