Laravel / Eloquent WHERE NOT SUBQUERY

У меня возникли проблемы с настройкой такого негативного состояния:

WHERE NOT( "last_day" "<=" $first_day OR "first_day" "<=" $last_day) 

Мой построитель запросов выглядит следующим образом:

 $query = $query->where(function ($query) use ($first_day, $last_day) { $query->where('last_day', '<=', $first_day); $query->orWhere('first_day', '<=', $last_day); }); 

Я бы хотел, чтобы это было так:

 $query = $query->whereNot(function ($query) use ($first_day, $last_day) { $query->where('last_day', '<=', $first_day); $query->orWhere('first_day', '<=', $last_day); }); 

Напомним: я хочу, чтобы оператор OR в отрицательном состоянии WHERE. Как я могу это сделать?

источник: http://baodad.blogspot.nl/2014/06/date-range-overlap.html

Вы можете играть с логикой

 $query = $query->where(function ($query) use ($first_day, $last_day) { $query->where('last_day', '>', $first_day); $query->where('first_day', '>', $last_day); }); 

Пошли с реверсивными ограничениями в соответствии с найденным здесь ответом: « Красноречивое заявление MYSQL: ГДЕ НЕ (A ИЛИ B)

 $query = $query->where('last_day', '>', $first_day)->where('first_day', '>', $last_day);