Yii 筛选grideview是否在条件中的搜索功能中具有条件?
我有一个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',
$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"));