我将搜索函数克隆到模型中,在控制器中使用它,将其传递给我的视图以使用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')