User::whereHas('availabilities', function ($q) use ($dt) {
$q->where('unavailable_start_date', '<=', $dt)
->where('unavailable_end_date', '>', $dt);
}, '=', 0)->get();
Vì vậy, chúng tôi đang đảo ngược điều này theo một cách nào đó. Chúng tôi đang thiết lập truy vấn bên trong whereHas để tìm khả năng sử dụng được, không có khả năng xảy ra, nằm trong phạm vi này. Vì vậy, chúng tôi đang truy vấn tất cả các bản ghi không có sẵn (theo một cách nào đó). Sau đó, chúng tôi chỉ thu hút những người dùng không có mối quan hệ phù hợp với tiêu chí này, bằng cách sử dụng các đối số khác cho whereHas ('=', 0
).
Vì vậy, bất kỳ người dùng nào có mối quan hệ này rơi vào khung thời gian này sẽ không được trả lại, bất kể họ có bao nhiêu bản ghi tình trạng sẵn sàng. Nếu bất kỳ ai trong số họ đủ điều kiện, họ sẽ không vượt qua bộ lọc.