Код, который я пытаюсь исправить, выглядит следующим образом. У меня есть класс Hotel, который используется в запросе, чтобы получить все отели в этом районе, но он не отбрасывает те, которые недоступны. Внутри есть метод, который должен быть средством доступа, но он написан не так, как я ожидал:
public function isAvailableInRanges($start_date,$end_date){
$days = max(1,floor((strtotime($end_date) - strtotime($start_date)) / DAY_IN_SECONDS));
if($this->default_state)
{
$notAvailableDates = $this->hotelDateClass::query()->where([
['start_date','>=',$start_date],
['end_date','<=',$end_date],
['active','0']
])->count('id');
if($notAvailableDates) return false;
}else{
$availableDates = $this->hotelDateClass::query()->where([
['start_date','>=',$start_date],
['end_date','<=',$end_date],
['active','=',1]
])->count('id');
if($availableDates <= $days) return false;
}
// Check Order
$bookingInRanges = $this->bookingClass::getAcceptedBookingQuery($this->id,$this->type)->where([
['end_date','>=',$start_date],
['start_date','<=',$end_date],
])->count('id');
if($bookingInRanges){
return false;
}
return true;
}
Я хотел отфильтровать отели по этому запросу. Итак, это запрос от контроллера:
$list = $model_hotel->with(['location','hasWishList','translations','termsByAttributeInListingPage'])->get();
Возможно ли передать диапазон дней функции?
Кстати, первое, что я попробовал, это использовать коллекцию после запроса и пропустить функцию фильтрации через коллекцию и после этого разбивать на страницы вручную, хотя, хотя и выполняет фильтрацию, но, очевидно, теряет результат "Eloquent". установите свойства коллекции, и она станет обычной коллекцией, поэтому у меня не получится.