Tengo problemas para configurar una condición negativa como esta:
WHERE NOT( "last_day" "<=" $first_day OR "first_day" "<=" $last_day)Mi generador de consultas se parece a este cajero automático:
$query = $query->where(function ($query) use ($first_day, $last_day) { $query->where('last_day', '<=', $first_day); $query->orWhere('first_day', '<=', $last_day); });Me gustaria que fuera asi:
$query = $query->whereNot(function ($query) use ($first_day, $last_day) { $query->where('last_day', '<=', $first_day); $query->orWhere('first_day', '<=', $last_day); });Para recapitular: quiero una declaración OR dentro de una condición WHERE negativa. ¿Cómo puedo lograr esto?
fuente: http://baodad.blogspot.nl/2014/06/date-range-overlap.html
Puedes jugar con la lógica.
$query = $query->where(function ($query) use ($first_day, $last_day) { $query->where('last_day', '>', $first_day); $query->where('first_day', '>', $last_day); });Fui con restricciones de reversión de acuerdo con la respuesta que se encuentra aquí: declaración MYSQL elocuente: DONDE NO (A O B)
$query = $query->where('last_day', '>', $first_day)->where('first_day', '>', $last_day);