Laravel 5.4 или запросWhereBetween не работает должным образом не возвращает данных - PullRequest
0 голосов
/ 15 января 2020

Привет, у меня есть этот запрос, который я хочу, чтобы результат отображался. Теперь у меня есть дата, которая вводит дату. Когда данные передаются, возвращается пустой массив. Но когда данные будут c, результаты отобразятся. Вот мой скрипт ниже

<form action="{{ action('TotalSaleController@searchConfirmed') }}" method="post">
                {{ csrf_field() }}
            <p class="mb-3 mb-lg-0">Search for all confirmed booking(s)</p>
            <select name="searchGuests" data-style="btn-selectpicker" title="Search Guest(s)" class="selectpicker form-control" data-live-search="true" >
                @foreach($getBookingGuests as $getBookingGuest)
                        <option value="{{ $getBookingGuest['first_name'] }}-{{ $getBookingGuest['last_name'] }} ">{{ $getBookingGuest['first_name'] }}, {{ $getBookingGuest['last_name'] }}</option>
                    @endforeach
            </select>
            <br>
            <br>
             <select name="searchPayment" data-style="btn-selectpicker" title="Search Payment(s)" class="selectpicker form-control" data-live-search="true" >
                    <option value="gcash">Gcash</option>
                    <option value="palawan">Palawan</option>
                    <option value="bpi">BPI</option>
              </select>
              <br>
              <br>
              <select name="searchRooms" data-style="btn-selectpicker" title="Search Room(s)" class="selectpicker form-control" data-live-search="true" >
                    @foreach($getAllRooms as $getAllRoom)
                        <option value="{{ $getAllRoom['id'] }}">{{ $getAllRoom['property_name'] }}</option>
                    @endforeach
              </select>
              <br>
              <br>

              <div class="datepicker-container-check">
                <input type="text" name="checkInDate" id="bookingDate" placeholder="Search Booking Date"  class="form-control">
              </div>
             <br> 
                  <input type="submit" class="btn btn-success" value="Search" />
             <br>
             <br>
            </form>

эта строка здесь

<input type="text" name="checkInDate" id="bookingDate" placeholder="Search Booking Date"  class="form-control">

Мой контроллер

 $checkInDate = $request->get('checkInDate');
 $checkInDateExp = explode("to", $checkInDate);

 $checkDate = $checkInDateExp[0];
        $checkDateTo = $checkInDateExp[1];

Тогда мой запрос отобразится

<code> $getCheckDates  = BookingHistory::orWhereBetween('checkin_date', [$checkDate, $checkDateTo])->where('confirmed', 1)->get()->toArray();

            echo "<pre>";
            print_r($getCheckDates); exit;
            echo "
";

Я не знаю, почему он возвращает пустой массив, это результат передачи данных из моей формы

2019-11-15
2019-12-29

Array
(
)

Может кто-нибудь помочь мне разобраться в этом? Так как orWhereBetween работает, когда данные устано c. Теперь, если данные передаются из формы, не отображаются. Любая помощь очень ценится. TIA

1 Ответ

0 голосов
/ 15 января 2020

Надеюсь, это поможет

 $getCheckDates  = BookingHistory::where('confirmed', 1)
              ->whereBetween('checkin_date', [$checkDate, $checkDateTo])
              ->get();
if($getCheckDates) {
  $getCheckDates = $getCheckDates->toArray(); # you may let it be object also
} else {
   // no any query result
}
...