在 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 合作的地方的主要内容,如果未能解决你的问题,请参考以下文章
barryvdh/laravel-cors 配置在 Laravel 5.6 中不起作用;忽略'allowedMethods'
为啥在 RegisterController 中创建函数在 laravel 中不起作用