Lex:
Собственно там же идет CDbСriteria.
Вот код который сгенерен yiic
соотвественно тут уже подставляем дефолтные условия.
я создавал без yiic код
не видел такого
но вот мой код и я не совсем врубаюсь как прикрутить фильтр
// Это экшен
public function actionIndex() {
$dataProvider = new CActiveDataProvider('products', array(
'criteria' => array(
'with' => array('manufacturers', 'categories'),
),
'pagination' => array(
'pageSize' => Yii::app()->params['perPage'],
)
));
$this->render('index', array('provider' => $dataProvider));
}
// вьюха для него
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'products-table',
'dataProvider' => $provider,
'selectableRows' => Yii::app()->params['perPage'],
'ajaxUpdate' => false,
'columns'=>array(
array(
'class' => 'CCheckBoxColumn',
'checkBoxHtmlOptions' => array('name' => 'values[]', 'class' => 'ch'),
'id' => 'values',
),
array(
'name' => 'ID',
'value' => '$data->id',
'htmlOptions' => array('align' => 'center'),
),
array(
'name' => '1С код',
'value' => '$data->code',
'htmlOptions' => array('align' => 'center'),
),
array(
'name' => 'Название',
'value' => '$data->name',
),
array(
'name' => 'Категория',
'value' => '$data->categories->name',
'filter' => array('0' => 'Без категории', '1' => 'Категория 1'),
),
array(
'name' => 'Производитель',
'value' => '$data->manufacturers->name',
),
array(
'name' => 'Тэги',
'value' => 'Format::productTags($data->id)',
),
array(
'name' => 'Цена',
'value' => 'Price::format($data->price)',
'htmlOptions' => array('align' => 'right'),
),
array(
'name' => 'Тип',
'value' => 'Format::productType($data)',
'htmlOptions' => array('align' => 'center'),
),
array(
'name' => 'Дата создания',
'value' => 'Yii::app()->locale->dateFormatter->formatDateTime($data->create_date, "long")',
'htmlOptions' => array('align' => 'center'),
),
array(
'class'=>'CButtonColumn',
'template'=>'{off} {on} {edit} {del}',
'buttons'=>array(
'off' => array(
'label' => 'Включить',
'imageUrl' => '/images/admin/yii_icon_no.gif',
'visible' => '$data->status == 0',
'url' => 'Yii::app()->controller->createUrl("products/status", array("id" => $data->id, "page" => $this->grid->dataProvider->pagination->currentPage+1, "status" => 1))',
),
'on' => array(
'label' => 'Выключить',
'imageUrl' => '/images/admin/yii_icon_yes.gif',
'visible' => '$data->status == 1',
'url' => 'Yii::app()->controller->createUrl("products/status", array("id" => $data->id, "page" => $this->grid->dataProvider->pagination->currentPage+1, "status" => 0))',
),
'edit' => array(
'label' => 'Редактировать',
'imageUrl' => '/images/admin/update.png',
'url' => 'Yii::app()->controller->createUrl("products/edit", array("id" => $data->id, "page" => $this->grid->dataProvider->pagination->currentPage+1))'
),
'del' => array(
'label' => 'Удалить',
'imageUrl' => '/images/admin/delete.png',
'url' => 'Yii::app()->controller->createUrl("products/del", array("id" => $data->id, "page" => $this->grid->dataProvider->pagination->currentPage+1))',
),
),
),
),
));
это получается мне надо отказаться от CActiveDataProvider, написать в модели выборку данных, там же сделать метод search().
я правильно понимаю ?