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