CdbCriteria 不能同时用于两个字段


CdbCriteria does not work for two fields at the same time

我使用以下代码在高级搜索表单中创建 4 个单选按钮。

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

所以现在我在模型中创建了一些条件来过滤网格视图以根据单选按钮值显示行。

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 ';
                }

上面的代码工作正常,如果注释了审阅日期条件或注释了批准的条件,则会相应地显示行。但是,这两个标准不能同时起作用。当我尝试同时使用这两个标准时,其中一个标准有效。
1.现在,我想为每个选项创建单独的单选按钮(我需要4个单选按钮批准,拒绝,审查,未审查)。
2.我希望单选按钮适用于每个条件而不会重叠。
我该怎么做

通过设置 $criteria->condition ,您可以有效地撤消所有addConditioncompare调用。请改用其他addCondition调用。