2012-01-23 5 views
0

아직 만료되지 않은 쿠폰과 만료되지 않는 쿠폰을 표시하려고합니다. 케이크 케이크 코드는 다음과 같습니다.Cakephp가 OR 조건이 작동하지 않음을 발견했습니다.

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'조건이 잘못 작성 되었습니까?

답변

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

}