我在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
,…将每个条件加到CDbCriteria
的condition
属性中。
我假设您在所有compare
条件之后声明了您的条件,这将覆盖前面的所有条件。
我建议将is_current当前的compare
条件替换如下:
$criteria->compare('is_current',$this->is_current,true);
$criteria->compare('is_current', 'yes');
请记住禁用gridview中的is_current搜索字段,因为该输入将不再被考虑。