问题描述
当我单击网格视图的列标题时,它正在排序,并且在 URL 排序参数中像 page/index?id=12&sort=column1
一样传递。我想在排序时添加另一个参数 page/index?id=12&sort=column1&custom_id=2
。
请帮我解决这个问题
解决方法
您可以使用如下排序参数在 DataProvider 中配置它:
$dataProvider = new ActiveDataProvider([
// ...
'sort' => [
'params' => ['custom_id' => 2]
]
]);
请注意,根据 this official documentation,如果您显式设置参数 - 排序链接将没有请求的上下文 GET 参数。
因此,如果您希望过滤器持续存在,您应该将 $_GET 数组与注入到链接的自定义参数合并。
合并 $_GET 的示例:
$contextParams = \Yii::$app->getRequest()->getQueryParams();
$dataProvider = new ActiveDataProvider([
// ...
'sort' => [
'params' => array_merge($contextParams,['custom_id' => 2])
]
]);