2012-01-23 1 views
0

Я ищу для отображения купонов, которые еще не истекли, и купоны, которые не истекают вообще. Вот мой CakePHP код:Cakephp find ИЛИ условие не работает

public function coupons() { 

$this->paginate['Coupon']=array(
    'limit'=>9, 
    'order'=>'RAND()', 
    'OR'=>array(
      'expires' =>0, 
      'Coupon.end_date >'=>date('Y-m-d') 
      ) 
    ); 
$c=$this->paginate('Coupon'); 
$this->set('allcoupons', $c); 

} 

Все работает правильно КРОМЕ купоны, которые истекли. Они все еще появляются в моих результатах. У меня есть тестовая запись, которая истекает до сегодняшнего дня, но она все еще появляется в моих результатах. Является ли мое условие «ИЛИ» написано неправильно?

ответ

4

неважно. Я понял. Вы должны инкапсулировать условия «или» позади », например:

public function coupons() { 

$this->paginate['Coupon']=array(
    'limit'=>9, 
    'order'=>'RAND()', 
    'conditions'=>array(
      'OR'=>array(
       'expires' =>0, 
       'Coupon.end_date >'=>date('Y-m-d') 
      )) 
    ); 
$c=$this->paginate('Coupon'); 
$this->set('allcoupons', $c); 

}