User::whereHas('availabilities', function ($q) use ($dt) {
$q->where('unavailable_start_date', '<=', $dt)
->where('unavailable_end_date', '>', $dt);
}, '=', 0)->get();
ですから、ある意味でこれを逆転させています。 whereHas内にクエリを設定して、この範囲内の可用性、非可用性を見つけます。したがって、使用できないすべてのレコードを(ある意味で)クエリしています。次に、whereHas('=', 0
)に対する他の引数を使用して、この基準に一致する関係を持たないユーザーのみを取得します。 。
したがって、この時間枠に該当するこの関係を持つユーザーは、可用性レコードの数に関係なく返されません。それらのいずれかが適格である場合、それらはフィルターを通過しません。