我写了一个Laravel查询。我在名为“可共享”的列上使用whereBetween
和orWhereBetween
以及where
语句,该列应返回一行。
但是此查询不考虑where
条件。它只用了whereBetween
和orWhereBetween
。可能是什么原因。
我的查询
$childs = Program::whereIn('id', $programs_by_date)
->where('shareable', '=','1')
->wherebetween('starting_date', [$new_start_date,$new_end_date])
->orwherebetween('ending_date', [$new_start_date,$new_end_date])
->orderBy('starting_date')
->get();
->where('shareable', '=','1')
返回0行。可能是什么原因。
shareable
类型为枚举
答案 0 :(得分:7)
试试这个:
$childs = Program::whereIn('id', $programs_by_date)
->where('shareable', '=','1')
->where(function($query) use ($new_start_date, $new_end_date){
$query->wherebetween('starting_date', [$new_start_date,$new_end_date])
->orwherebetween('ending_date', [$new_start_date,$new_end_date])
})
->orderBy('starting_date')
->get();
希望这会奏效。
答案 1 :(得分:0)
你应该试试这个
span