User::whereHas('availabilities', function ($q) use ($dt) {
$q->where('unavailable_start_date', '<=', $dt)
->where('unavailable_end_date', '>', $dt);
}, '=', 0)->get();
Dus we draaien dit op een bepaalde manier om. We stellen de vraag in waar moet de beschikbaarheid, onbeschikbaarheid, die zich in dit bereik bevinden, worden gevonden. Dus we zoeken naar alle niet-beschikbare records (in zekere zin). We pakken dan alleen gebruikers die geen relaties hebben die aan deze criteria voldoen, door de andere argumenten te gebruiken voor whereHas ( '=', 0
).
Dus alle gebruikers met deze relatie die in dit tijdsbestek vallen, worden niet geretourneerd, ongeacht hoeveel beschikbaarheidsrecords ze hebben. Als een van hen zich kwalificeert, zullen ze het filter niet halen.