2013-09-25 4 views
0

Я создал 4 радиокнопки в расширенной форме поиска, используя приведенный ниже код.CdbCriteria не работает для двух полей одновременно

<div class="row"> 
     <?php #echo $form->label($model,'ReviewedDate'); ?>  
       <?php echo $form->radioButtonList($model, 'ReviewedDate', 
     array('1' => 'Reviewed', '' => 'Not Reviewed') 
    ); ?> 
    </div> 

     <div class="row"> 
       <?php echo $form->radioButtonList($model, 'Approved', 
     array('0' => 'Rejected', '1' => 'Approved') 
    ); ?> 
    </div> 

Так что теперь я создал несколько критериев в модели для фильтрации GridView для отображения строки в соответствии со значением RadioButton.

if($this->ReviewedDate != '') 
       { 
       $criteria->addCondition('ReviewedDate ' . ($this->ReviewedDate=='1' ? 'IS NOT NULL' : 'IS NULL')); 
       $criteria->addCondition('updateddate > createddate'); 
       $criteria->compare('revieweddate','0000-00-00 00:00:00'); 
       } 
       else 
       { 
       $criteria->addCondition('updateddate = createddate');  
       $criteria->addCondition('ReviewedDate IS NULL'); 
       } 



if (isset($this->Approved) && !empty($this->Approved)) { 

         $criteria->addCondition("approved='" . $this->Approved . "'"); 
         $criteria->condition = ' (updateddate > createddate) AND (revieweddate IS NOT NULL) and approved = 1 '; 
       } 
       else { 

         $criteria->addCondition("approved='" . $this->Approved . "'"); 
         $criteria->condition = ' (updateddate > createddate) AND (revieweddate IS NOT NULL) and approved = 0 '; 
       } 

Приведенный выше код работает отлично и отображает строки соответственно, если либо revieweddate критерии комментировали или утвержденные критерии комментировали. Но оба критерия не работают одновременно. Когда я пытаюсь использовать оба критерия одновременно, один из критериев работает.
1. Теперь, я хочу создать индивидуальный радиобудильник для каждой опции (мне нужно, чтобы 4 радиообъекта были одобрены, отклонены, просмотрены, не просмотрены).
2. Я хочу, чтобы радиатор работал по каждому критерию без перекрытия.
Как я могу это сделать

ответ

0

Устанавливая $criteria->condition, вы фактически отменяя все addCondition и compare звонки. Вместо этого используйте другой вызов addCondition.

Смежные вопросы