Я получаю список информации о ставках из базы данных с условиями. Однако я хотел бы добавить еще одно условие минимального пребывания, если диапазон дат содержит дату и rateID из другой таблицы, называемой минимальным пребыванием. Таблица тарифов уже имеет минимальное пребывание, но в определенные даты я хочу переопределить это, если дата попадает в диапазон дат, который я передаю.
Я новичок в cakephp, поэтому не уверен, как проверить таблицу minStay на наличие дат в диапазоне дат. Затем получите самый большой minStay и добавьте его к условию.
Значение minStay по умолчанию в таблице тарифов равно 1
Вот данные в таблице minStay:
дата: 31-10-2011 ставка ID: 21 мин. Время пребывания: 2
дата: 1-11-2011 ставка ID: 21 мин. время пребывания: 3
Результаты: Если диапазон дат от 31-10-2011 до 2-11-2011 / 2 ночи, то результатов нет. Если 3 ночи и более, то результат.
Надеюсь, я правильно объяснил.
Переменная, содержащая диапазон дат: $ todays
$conditions = array(
'Rate.enabled'=>1,'Rate.is_corporate'=>$is_corporate, 'Rate.minimum_stay <='=>$days,
'Rate.valid_from < '=>$date_start,'Rate.valid_to >'=>$date_end,
'OR'=>array('Rate.maximum_stay'=>0,'Rate.maximum_stay >='=>$days)
);
$order = 'Rate.list_no';
$this->Rate->contain('Room.id','Room.title','Room.max_adults','Room.max_children');
$rates = $this->Rate->find('all',array('conditions'=>$conditions,'order'=>$order));