在 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();
我有这个预订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();