在 Laravel 中不使用 whereBetween 的地方

where not working with whereBetween in Laravel

我有这个预订table

start_date | end_date | status

2020-12-15   2020-12-18    Active
2020-12-19   2020-12-22    Inactive

在此 table 中,预订数据正在保存,但我想将 where 和 whereBetween 添加到 return 状态为活动的那些行。我使用了下面的查询,但它也是 returning 非活动行。

 $available_start = date('Y-m-d', strtotime($request->start_date));
         $available_end = date('Y-m-d', strtotime($request->end_date));     
         $checkData =Booking::whereBetween('start_date', [
            $available_start, $available_end
        ])->orwhereBetween('end_date', [
            $available_start, $available_end
        ])->where('status','Active')->get();      

非常感谢任何帮助。

您必须将 'whereBetween' 合并到一个地方才能获得预期的结果:

 $available_start = date('Y-m-d', strtotime($request->start_date));
        $available_end = date('Y-m-d', strtotime($request->end_date));
        $checkData =Booking:: where(function ($query)use($available_start, $available_end){
            $query-> whereBetween('start_date', [
                $available_start, $available_end
            ])->orwhereBetween('end_date', [
                $available_start, $available_end]);
        })
        ->where('status','Active')->get();