- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 yii-booster(4.0.1) TbGridView(extends CGridView) 并且需要更改 _REQUEST($_POST, $_GET) 中的过滤器变量名称以实现过滤器功能。在我的网格中,我有过滤器功能,当我在过滤器输入中输入一些单词后按回车键时,将向服务器发送一个 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 日更新
我从另一个项目中找到了我的代码,如您所见,我可以更改 sort
和 pagination
的 key
,我需要一些类似的东西来过滤键;
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/
关于php - Yii1 CGridView(Yii-Booster) : How to change filter key(filterVal) in TbGridView(based on CGridView)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34576528/
我已将 yii bootstrap 扩展集成到我的站点中。我有一个显示网格 View 的页面。虽然它是 bootstrap ,但我使用了 TbGridView。基本的 GridView 功能,如排序、
我正在使用 yii-booster(4.0.1) TbGridView(extends CGridView) 并且需要更改 _REQUEST($_POST, $_GET) 中的过滤器变量名称以实现过滤
我是一名优秀的程序员,十分优秀!