у меня была функция поиска клонов в модели, я использовал ее при передаче контроллера, чтобы использовать 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;
}
Кроме того, если вы не добавили правила для searchCargo
в вашей модели rules
метод, ваш сценарий должен быть search
т.е.
$modRespSearchC=new Responsables('search')
Других решений пока нет …