高级搜索选项在gridview中不起作用(使用YII框架)


Advanced search option is not functional in the gridview (using YII framework)

我在php编码和使用Yii框架的新。我找不到解决办法。我有一个搜索选项的页面,其中一些信息显示了许多用户。为了进行搜索,我的模型中有一个搜索功能。这是搜索功能代码。

public function search()
    {

        $criteria=new CDbCriteria;
        $criteria->compare('cv_id',$this->cv_id,true);
        $criteria->compare('user_id',$this->user_id,true);
        $criteria->compare('job_title_id',$this->job_title_id);
        $criteria->compare('cv_type',$this->cv_type,true);
        $criteria->compare('version_id',$this->version_id,true);
        $criteria->compare('upload_date',$this->upload_date,true);
        $criteria->compare('update_date',$this->update_date,true);
        $criteria->compare('file_name',$this->file_name,true);
        $criteria->compare('next_review_date',$this->next_review_date,true);
        $criteria->compare('review_status',$this->review_status,true);
        $criteria->compare('file_location',$this->file_location,true);
        $criteria->compare('is_current',$this->is_current,true);
        $criteria->compare('status',$this->status,false);
        return new CActiveDataProvider($this, array(
            'criteria'=>$criteria,
                'sort'=>array(

        'defaultOrder'=>'upload_date DESC'
        )
        ));
    }
如果在搜索函数中声明条件,

此函数将不起作用。我需要声明在页面中显示用户当前数据的条件。下面是条件代码:

$criteria->condition = "is_current='yes'";

如果省略此条件代码行,则搜索功能可以正常工作。但我需要这个代码行来显示用户的当前数据。那么我能做些什么呢?有人有解决办法吗....请为我提供代码示例,因为我不擅长编码....

CDbCriteria有几种指定条件的方法,如compare, addColumnCondition,…将每个条件加到CDbCriteriacondition属性中。

我假设您在所有compare条件之后声明了您的条件,这将覆盖前面的所有条件。

我建议将is_current当前的compare条件替换如下:

$criteria->compare('is_current',$this->is_current,true);

$criteria->compare('is_current', 'yes');

请记住禁用gridview中的is_current搜索字段,因为该输入将不再被考虑。