User::whereHas('availabilities', function ($q) use ($dt) {
$q->where('unavailable_start_date', '<=', $dt)
->where('unavailable_end_date', '>', $dt);
}, '=', 0)->get();
Така че обръщаме това по някакъв начин. Ние настройваме заявката вътре в whereHas, за да намерим наличностите, неналичностите, които са в този диапазон. Така че ние правим заявки за всички недостъпни записи (по някакъв начин). След това грабваме само потребители, които нямат връзки, които отговарят на този критерий, като използваме другите аргументи на whereHas ( '=', 0
).
Така че всички потребители, които имат тази връзка, които попадат в тази времева рамка, не се връщат, без значение колко записи за наличност имат. Ако някой от тях се класира, няма да премине през филтъра.