0

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.

1 Answer 1

1

Your initial excluded_period can't be between your start and end:

          ->whereNotBetween('excluded_period_start', [$start, $end])
          ->whereNotBetween('excluded_period_end', [$start, $end])
Sign up to request clarification or add additional context in comments.

1 Comment

let me give it a try.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.