Laravel介于两者之间

col*_*mbo -1 mysql laravel laravel-4 laravel-5

我写了一个Laravel查询.我使用whereBetween,并orWhereBetween伴随着一个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(); 
Run Code Online (Sandbox Code Playgroud)

->where('shareable', '=','1')返回0行.可能是什么原因.

shareable 类型是枚举

Muh*_*man 9

试试这个:

$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();
Run Code Online (Sandbox Code Playgroud)

希望这会奏效.