在 Laravel 中不与 whereBetween 合作的地方

Posted

技术标签:

【中文标题】在 Laravel 中不与 whereBetween 合作的地方【英文标题】:where not working with whereBetween in Laravel 【发布时间】:2021-03-17 08:28:33 【问题描述】:

我有这张预订表

开始日期 |结束日期 |状态

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

在此表中,预订数据正在保存,但我想添加 where 以及 whereBetween 以返回状态为活动的那些行。我使用了下面的查询,但它也返回了非活动行。

 $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();      

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

您必须将“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();

【讨论】:

以上是关于在 Laravel 中不与 whereBetween 合作的地方的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Route不与Wamp合作

barryvdh/laravel-cors 配置在 Laravel 5.6 中不起作用;忽略'allowedMethods'

为啥在 RegisterController 中创建函数在 laravel 中不起作用

为啥在 laravel 的 whereBetween 中不起作用

事务在 laravel 中不起作用

为啥嵌套循环在 laravel 中不起作用