您能帮我将此SQL查询转换为Eloquent吗?
SELECT *
FROM rooms r
WHERE r.id NOT IN (
SELECT b.room_id FROM bookings b
WHERE NOT (b.time_to <= '2019-11-18'
OR
b.time_from >= '2019-11-22'))
ORDER BY r.id;
在Laravel中,我有两个模型,Room和Booking。如何用雄辩的WHERE NOT吗?
[您能帮我将这个SQL查询转换为雄辩的吗?SELECT * FROM rooms r WHERE r.id NOT IN(SELECT b.room_id FROM bookings WHERE NOT(b.time_to <='2019-11-18'OR .. 。
我假设您的模型在app \ Models文件夹中。
您需要相反的条件。代替:
$rooms = Room::whereDoesntHave("bookings", function($query) use ($date1, $date2){
$query->whereDate("time_to", ">", $date1)
->whereDate("time_from", "<", $date2 );
})->orderBy("id", "ASC")->get());