gpt4 book ai didi

mysql - 检查 Laravel 查询的重叠时间段

转载 作者:行者123 更新时间:2023-11-29 06:49:27 25 4
gpt4 key购买 nike

在预订时间段时,我想检查该时间段是否与任何其他已预订的时间段重叠。使用以下查询进行相同但不正确的查询:

Availability::where('date',date('Y-m-d',strtotime($request->available_date)))
->where(function ($query) use($request){
$query->whereBetween('start_time', [date("H:i:s", strtotime($request->start_time)), date("H:i:s", strtotime($request->end_time))])
->orWhereBetween('end_time', [date("H:i:s", strtotime($request->start_time)), date("H:i:s", strtotime($request->end_time))]);
})
->get();

提前致谢!

最佳答案

首先,能够访问$startTime$endTime在查询闭包中,您需要使用 use 传递它们构造即

function ($query) use ($startTime, $endTime)

尝试如下:

$startTime = $request->start_time; 
$endTime = $request->end_time;

$Availability = Availability::where(function ($query) use ($startTime, $endTime) {
$query
->where(function ($query) use ($startTime, $endTime) {
$query
->where('start_time', '<=', $startTime)
->where('end_time', '>', $startTime);
})
->orWhere(function ($query) use ($startTime, $endTime) {
$query
->where('start_time', '<', $endTime)
->where('end_time', '>=', $endTime);
});
})->count();

希望这对您有帮助!

关于mysql - 检查 Laravel 查询的重叠时间段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48071616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com