Cakephp найти ИЛИ условие не работает - PullRequest
0 голосов
/ 23 января 2012

Я хочу показать купоны, которые еще не истекли, и купоны, которые вообще не истекли.Вот мой код CakePHP:

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);

}

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

1 Ответ

4 голосов
/ 23 января 2012

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

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);

}
...