Php 如何在yii框架中将文本字段更改为单选按钮列表并过滤空值

Php 如何在yii框架中将文本字段更改为单选按钮列表并过滤空值,php,yii,radiobuttonlist,Php,Yii,Radiobuttonlist,我正在高级搜索中使用文本字段。现在,我需要将文本字段“审阅日期”转换为两个单选按钮“审阅”和“未审阅”。Reviewed按钮应显示ReviewedDate not null和Reviewed with null值的所有行。我正在使用_search.php进行此操作 更改模型中的搜索功能: public function search() { $criteria = new CDbCriteria; // ... other fields // ADD THIS

我正在高级搜索中使用文本字段。现在,我需要将文本字段“审阅日期”转换为两个单选按钮“审阅”和“未审阅”。Reviewed按钮应显示ReviewedDate not null和Reviewed with null值的所有行。我正在使用_search.php进行此操作

更改模型中的搜索功能:

public function search() {
    $criteria = new CDbCriteria;

    // ... other fields

    // ADD THIS
    if($this->reviewedDate != '') {
        $criteria->addCondition(
            'reviewedDate ' . ($this->reviewedDate=='1' ? 'IS NOT NULL' : 'IS NULL'),
        );
    }
    else {
        $criteria->addCondition('reviewedDate IS NULL');
    }

    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
    ));
}
更改您的\u search.php

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

我认为您需要在表中添加一个布尔字段(例如
isReviewed
)。然后,每当检查项目时,将1分配给字段,默认值也是0。然后在
\u search.php
中:

CHtml::activeRadioButtonList($model,'isReviewed',array(
            1=>'Reviewed',
            0=>'Not Reviewed',
      )),

我希望有用。

我得到一个CDBEException:CDbCommand无法执行SQL语句:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行中使用接近“NULL”的正确语法。执行的SQL语句是:从
message\u template
t
中选择COUNT(*),其中(MessageType=:ycp0)和(ReviewedDateIS NULL)我得到这个错误“找不到结果”当我单击“未审核”时,单击“未审核”按钮时,未找到任何结果是…它确实已审核工作正常…但“未审核”将参数作为0表示null如何指定null而不是0我无法修改表