我希望显示尚未过期的优惠券和根本不过期的优惠券。这是我的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);

}


除了已过期的优惠券,一切都可以正常工作。它们仍然显示在我的结果中。我有一个测试记录,该记录在今天之前到期,但是仍然显示在我的结果中。我的“ OR”条件写错了吗?

最佳答案

没关系。我想到了。您必须在“条件”后面封装“或”,如下所示:

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

}

关于mysql - Cakephp查找OR条件不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8975310/

10-12 12:55