User::whereHas('availabilities', function ($q) use ($dt) {
$q->where('unavailable_start_date', '<=', $dt)
->where('unavailable_end_date', '>', $dt);
}, '=', 0)->get();
Så vi vender det på en måde om. Vi opsætter forespørgslen inde i whereHas for at finde de tilgængeligheder, utilgængeligheder, der er i dette interval. Så vi forespørger efter alle utilgængelige poster (på en måde). Vi griber så kun brugere, der ikke har relationer, der matcher dette kriterium, ved at bruge de andre argumenter til whereHas ( '=', 0
).
Så alle brugere, der har denne relation, der falder inden for denne tidsramme, returneres ikke, uanset hvor mange tilgængelighedsregistreringer de har. Hvis nogen af dem kvalificerer sig, kommer de ikke igennem filteret.