I am working on an application using Laravel and I am trying to filter records from the database. Here is the criteria:
In the database I have 2 date columns [excluded_period_start]
and [excluded_period_end]
. Both columns have date datatype.
Now I have 2 fields in my form [start_date]
and [end_date]
.
I want to get all the records excluding the period stored in the database. The code I am using is:
$hotels = Hotel::whereHas('location' , function($query) use($searchOptions){
if(trim($searchOptions['location']) != ''){
$query->where('location_title', $searchOptions['location']);
}
})
->where('excluded_period_start', '<', $start)
->where('excluded_period_end', '>', $end)
->where('active', 1)
->take(10)
->paginate(10);
However, this only gives me results which comes between the range stored in my database but I want the results outside of that range.
I have tried many things like ->whereBetween()
but none of them worked.
Any help would be appreciated.