Проверить диапазон дат еще не забронирован в laravel? - PullRequest
0 голосов
/ 04 мая 2019

Я работаю в системе онлайн-бронирования велосипедов.Где клиент может забронировать велосипед для определенного диапазона времени и даты.Если другой клиент заказывает тот же велосипед для определенного диапазона времени и даты, я должен проверить, что велосипед уже забронирован или нет.Моя таблица базы данных бронирование выглядит следующим образом:

 id     bike_id      start_date             end_date
  1       1       2019-05-04 14:30      2019-05-04 15:30
  1       1       2019-05-04 16:30      2019-05-04 18:30

Предположим, если другой клиент хочет заказать велосипед на 2019-05-04 с 17:00 до 2019-05-04 19:30(то есть от start_date до end_date), тогда велосипед не должен быть доступен.Бронирование должно быть доступно только в том случае, если никакие другие предыдущие заказы не перекрываются в запрошенном диапазоне времени и даты.Как написать запрос MySQL для этого в laravel?

1 Ответ

0 голосов
/ 04 мая 2019

вы можете использовать whereRaw для проверки даты между двумя столбцами

whereRaw('? between start_date and end_date', [date('Y-m-d')])

или

where(function ($q) {
  $q->where('start_date', '<=', date('Y-m-d'));
  $q->where('end_date', '>=', date('Y-m-d'));
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...