3

我正在使用 yii-booster(4.0.1) TbGridView(extends CGridView) 并且需要更改 _REQUEST($_POST, $_GET) 中的过滤器变量名称以获得过滤器功能。在我的网格中,我有过滤器功能,当我在过滤器输入中输入一些单词后按 Enter 键时,将为服务器发送一个 ajax 请求。在 $_REQUEST 的这个请求中,我有:

array
(
    'page' => '1'
    'wsi_it_model_Asset' => array
    (
        'user' => 'eghlima'
        'createdAt' => ''
        'serial' => ''
        'brand' => ''
        'model' => ''
        'assetType' => ''
        'assigned' => ''
        'location' => ''
        'status' => ''
    )
)

我的问题是如何在 CGridView 创建的请求中更改wsi_it_model_Asset。我知道在创建 dataProvider 时应该通过CActiveDataProvider中的参数来完成,但我找不到它。

提前致谢。

更新 1 月 24 日
我从另一个项目中找到了我的代码,如您所见,我可以更改keyforsortpagination,我需要看起来像过滤键的东西;

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' => ''
    )
)
4

1 回答 1

0

我不确定你的意思,但我试一试。

$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/

于 2016-01-08T19:55:06.360 回答