Laravel介于

时间:2018-04-17 09:56:35

标签: mysql laravel laravel-5 laravel-4

我写了一个Laravel查询。我在名为“可共享”的列上使用whereBetweenorWhereBetween以及where语句,该列应返回一行。
但是此查询不考虑where条件。它只用了whereBetweenorWhereBetween。可能是什么原因。

我的查询

$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类型为枚举

2 个答案:

答案 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