laravel查询whereBetween不起作用

时间:2018-03-30 05:56:01

标签: php arrays laravel date laravel-query-builder

这是我的Laravel查询。

$fromdate = '2018-04-09';
$todate = '2018-04-28';
$dt = array($fromdate, $todate);
return DB::table('leaves')
  ->select('leaveId')
  ->whereBetween('from', [$dt[0], $dt[1]])
  ->orWhereBetween('to', [$dt[0], $dt[1]])
  ->get();

我的数据库行

'11', 'ckkl;kghhjgkgvjkvvb,,kkkkhhhhh', '2018-03-29', '2018-04-21', '2018-04-22', 'Sam User', NULL, '2018-03-29 10:52:48', '2018-03-29 10:52:48', '2', '8', '1'
'10', 'pjp\'', '2018-03-29', '2018-04-11', '2018-04-12', 'test user', NULL, '2018-03-29 10:50:28', '2018-03-29 10:50:28', '1', '8', '1'

似乎它没有检查whereBetween子句。它只返回leaveId。谢谢你的建议。

2 个答案:

答案 0 :(得分:1)

它将返回离开ID,因为您正在选择leaveId。如果您希望leaveId的所有数据都删除选择部分。

答案 1 :(得分:0)

你应该试试这个:

$fromdate = '2018-04-09';
$todate = '2018-04-28';
$dt = array($fromdate, $todate);
return DB::table('leaves')
  ->select('leaveId')
  ->whereRaw('from BETWEEN "'.$fromdate.'" AND "'.$todate.'" OR to BETWEEN "'.$fromdate .'" AND "'.$todate.'"')
  ->get();