Эта функция позволяет получить список доступных номеров для бронирования в Laravel. Кто-нибудь может помочь мне понять, что не так с запросом?

#php #mysql #laravel #eloquent #laravel-8

Вопрос:

При бронировании номера с 2021-09-29 09:00 до 2021-09-29 10:00 номер должен быть доступен для бронирования с 2021-09-29 10:00, но в этом случае номер становится доступным с 2021-09-29 10:01.

 public function searchRoom(Request $request)
{
    $rooms = null;
    if($request->filled(['start_time', 'end_time', 'capacity'])) {
        $times = [
            Carbon::parse($request->input('start_time')),
            Carbon::parse($request->input('end_time')),
        ];

        $rooms = Room::where('capacity', '>=', $request->input('capacity'))
            ->whereDoesntHave('events', function ($query) use ($times) {
                $query->whereBetween('start_time', $times)
                    ->orWhereBetween('end_time', $times)
                    ->orWhere(function ($query) use ($times) {
                        $query->where('start_time', '<', $times[0])
                            ->where('end_time', '>', $times[1]);
                    });
            })
            ->get();
    }

    return view('admin.bookings.search', compact('rooms'));
}