Я использую yii-booster (4.0.1) TbGridView (расширяет CGridView) и мне нужно изменить имя переменной фильтра в _REQUEST ($ _ POST, $ _GET) для функции фильтра.
В моей сетке есть функция фильтра, и когда я нажимаю клавишу ввода после ввода некоторых слов во вход фильтра, на сервер отправляется запрос ajax. в этом запросе в $ _REQUEST у меня есть:
array
(
'page' => '1'
'wsi_it_model_Asset' => array
(
'user' => 'eghlima'
'createdAt' => ''
'serial' => ''
'brand' => ''
'model' => ''
'assetType' => ''
'assigned' => ''
'location' => ''
'status' => ''
)
)
Мой вопрос, как я могу изменить wsi_it_model_Asset в запросе, созданном CGridView.
Я знаю, что я должен сделать это через параметр в CActiveDataProvider когда я создаю dataProvider, но я не могу его найти.
Заранее спасибо.
ОБНОВЛЕНИЕ 24 января
Я нашел свой код из другого проекта, как вы можете видеть, я могу изменить key
за sort
а также pagination
Мне нужно что-то похожее на фильтр ключа;
return new \CActiveDataProvider($this->applicant, array(
'criteria' => $criteria,
'pagination' => array(
'pageVar' => 'p', // <<<<< pagination var
'pageSize' => 20,
),
'sort' => array(
'sortVar' => 's', // <<<<< sorting var
'defaultOrder' => 't.firstName ASC',
'attributes' => array(
'*'
)
),
));
Таким образом, для нумерации страниц запрос от клиента к серверу будет:
array
(
'p' => '7' // <<<<<< page changed to `p`
'wsi_it_model_Asset' => array
(
'user' => 'eghlima'
'createdAt' => ''
'serial' => ''
'brand' => ''
'model' => ''
'assetType' => ''
'assigned' => ''
'location' => ''
'status' => ''
)
)
Я не уверен, что вы имеете в виду, но я попробую.
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'my-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(
array(
'value' => '$data->theValue',
'filter' => CHtml::activeTextField($model, 'myWish'),
),
)
));
И тогда в вашей модели вы добавляете виртуальный атрибут
public function getMyWish()
{
return 'Your dream answere';
}
И в вашем $ model-> search () добавьте:
$criteria->compare('$data->theValue', $this->myWish,true);
Примерно так: проверьте очень хороший учебник по виртуальным атрибутам: http://www.yiiframework.com/wiki/167/understanding-virtual-attributes-and-get-set-methods/
Других решений пока нет …