как сравнить запрос времени в красноречивом с postgresql - PullRequest
0 голосов
/ 02 ноября 2018

Я использую тонкий фреймворк с php и eloquent в качестве ORM для создания системы повестки дня и postgresql в базе данных. У меня есть мои столы:

таблица пользователей:

users
-id (uuid)
-email (varchar)
-password (varchar)

сводная таблица:

meeting_user
-user_id (uuid)
-meeting_id (uuid)

стол для совещаний:

meetings
-id (uuid)
-meeting_date (date)
-start_at (time)
-finish_at (time)    

Я делаю запрос, чтобы проверить доступность пользователя, отправляющего дату, время начала и время окончания, и возвращает true или false, если у вас есть какая-либо запись за этот период. у меня есть это:

select count(*) from meetings 
inner join meeting_user
on meetings.id = meeting_user.meeting_id
where meeting_user.user_id = '0e804e9d-a3e4-42bc-8877-f8b2f74c27e8'
and (meetings.meeting_date = '2018-11-02'::date
and '13:00:00'::time 
between meetings.start_at::time and meetings.finish_at::time
or
'14:05:00'::time
between meetings.start_at::time and meetings.finish_at::time
)

и работает отлично, но как я могу сделать это с помощью eloquent? Я пытался, но не работает, я делаю это:

return EloquentUser::find($userId)
        ->meetings()
        ->where('meeting_date', $meetingDate)
        ->whereBetween('start_at', array($startAt, $finishAt))
        ->orWhereBetween('finish_at', array(strtotime($startAt), strtotime($finishAt)))
        ->exists();

Может кто-нибудь помочь мне, пожалуйста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...