Yii框架1.1.CGridview过滤器不能和我自己的搜索功能一起进入模型


Yii Framework 1.1.. CGridview filter is not working with my own search function into model

我将搜索函数克隆到模型中,在控制器中使用它,将其传递给我的视图以使用CGridview,结果数据是正确的,但过滤器停止工作,我看不到任何差异,所以必须添加更多其他内容。以下是我的代码部分:型号:

public function searchCargo()
   {
     $criteria=new CDbCriteria;
     $criteria->compare('cargoResp',1,true);
     return new CActiveDataProvider($this, array(
                              'criteria'=>$criteria,
                          ));
   }

控制器

$modRespSearchC=new Responsables('searchCargo');
$modRespSearchC->unsetAttributes();
if(isset($_GET['Responsables']))
   $modRespSearchC->attributes=$_GET['Responsables'];

CGridView:

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'responsables-grid1',
'dataProvider'=>$modRespSearchC->searchCargo(),
'filter'=>$modRespSearchC,
'columns'=>array(
           'apell1Resp',
           'apell2Resp',
           'cargoResp',.....

我错过了什么??如何将过滤器与自己的功能结合使用??

缺少其他搜索条件。然而,由于它们存在于search函数中,您所需要做的就是如下调用该函数:

public function searchCargo() {
    $dataProvider = $this->search();
    $dataProvider->criteria->compare('cargoResp',1,true); 
    return $dataProvider;
}

此外,除非您在模型的rules方法中添加了searchCargo的规则,否则您的场景应该是search,即

$modRespSearchC=new Responsables('search')