Yii 筛选grideview是否在条件中的搜索功能中具有条件?

Yii 筛选grideview是否在条件中的搜索功能中具有条件?,yii,Yii,我有一个grideview的代码 $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'lecture-grid', 'dataProvider'=>$model->search(), 'filter'=>$model, 'columns'=>array( array( 'header'=>'name', 'type' => 'raw',

我有一个grideview的代码

 $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'lecture-grid',
'dataProvider'=>$model->search(),
 'filter'=>$model,
'columns'=>array(
    array(
        'header'=>'name',
        'type' => 'raw',
       // 'name'=>'name',
        'value' => 'CHtml::link($data->name,Yii::app()->baseUrl . "/uploads/" . $data->name)',

    ),
    array(
        'header'=>'pages',

        'value'=>'$data->slide_num'
    ),
    array(
        'header'=>'type',

        'value'=>'$data->type'
    ),
    array(
        'header'=>'Size',

        'value'=>'$data->size'
    ),
   // 'subject.name'
    array (
        'header'=>'subject',
        'value' => 'ucfirst($data->subject->name)',
        'filter' => CHtml::dropDownList('Lecture[subject_id]',
                $model->subject_id, Chtml::ListData(Subject::model()->findAll('department_id='.$department_id),'id','name'),
                array('empty' => '(Select)'))

    )
/*    array(
        'name'=>'subject',
        'type'=>'raw',
        'value'=>"Subject::model()->find('id=2')->name",
        'filter'=>''
    ),*/


),
));
在模型中,搜索功能是

public function search()
{
    // @todo Please modify the following code to remove attributes that should not be searched.

    $criteria=new CDbCriteria;

    $criteria->compare('id',$this->id);
    $criteria->compare('name',$this->name,true);
    $criteria->compare('slide_num',$this->slide_num,true);
    $criteria->compare('type',$this->type,true);
    $criteria->compare('size',$this->size,true);
    $criteria->compare('user_id',$this->user_id);
    $criteria->compare('subject_id',$this->subject_id);

    return new CActiveDataProvider(get_class($this), array(
        'criteria' => $criteria,
    ));
    /*return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
    ));*/
}
一切都很好我的目标是过滤器,在这个搜索功能正常工作,但我想有一个条件的条件
$criteria->condition='subject_id=1或subject_id=3'
当我把条件放在条件中时,它的过滤器不起作用,因为搜索函数中有条件,所以它的过滤器也起作用

public function search()
{
    // @todo Please modify the following code to remove attributes that should not be searched.

    $criteria=new CDbCriteria;

    $criteria->compare('id',$this->id);
    $criteria->compare('name',$this->name,true);
    $criteria->compare('slide_num',$this->slide_num,true);
    $criteria->compare('type',$this->type,true);
    $criteria->compare('size',$this->size,true);
    $criteria->compare('user_id',$this->user_id);
    $criteria->compare('subject_id',$this->subject_id);
    $criteria->condition='subject_id=1 or subject_id=3';
    return new CActiveDataProvider(get_class($this), array(
        'criteria' => $criteria,
    ));
    /*return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
    ));*/
}

而不是
$criteria->condition='subject_id=1或subject_id=3'

试一试

或者只是

$criteria->addInCondition("subject_id", array("1","2"));
$criteria->addInCondition("subject_id", array("1","2"));