Мне нужно перенести этот запрос MYSQL в Laravel 5.2 Query Builder, и я не понимаю, как успешно реализовать часть Логическое НЕ:
SET @in='2017-06-01', @out='2017-06-01';
SELECT
rooms.id,
rooms.name,
reservations.check_in,
reservations.check_out,
reservations.room_id
FROM
rooms
LEFT JOIN
reservations
ON rooms.id = reservations.room_id AND
NOT (
(reservations.check_in < @in AND reservations.check_out < @in)
OR
(reservations.check_in > @out AND reservations.check_out > @out)
)
WHERE reservations.room_id IS NULL
Я пытаюсь использовать необработанный запрос Конструктора запросов, но он не работает, я получаю сообщение об ошибке Вызов неопределенного метода Illuminate \ Database \ Query \ Expression :: whereNull ()
$free_rooms = Room
::select('rooms.id', 'rooms.name')
->leftJoin('reservations', 'rooms.id', '=', 'reservations.room_id') AND
DB::raw("
NOT (
(reservations.check_in < $request->check_in AND reservations.check_out < $request->check_in)
OR
(reservations.check_in > $request->check_out AND reservations.check_out > $request->check_out)
)
")
->whereNull('reservations.room_id')
->get();
Room::hydrateRaw($rawQuery, $bindings)
- person Paul Spiegel   schedule 23.07.2017