首页 > 解决方案 > Yii 2 Gridview 排序标头 - 在 url 中添加自定义参数

问题描述

当我单击 Grid 视图的列标题时,它正在排序,并且在 URL 排序参数中被传递,如page/index?id=12&sort=column1. 我想在像这样排序时添加另一个参数page/index?id=12&sort=column1&custom_id=2

请帮助我

标签: gridviewyii2datagridviewcolumnyii2-grid

解决方案


您可以使用如下排序参数在 DataProvider 中配置它:

$dataProvider = new ActiveDataProvider([
    // ...
    'sort' => [
        'params' => ['custom_id' => 2]
    ]
]);

请注意,根据 此官方文档,如果您明确设置参数 - 排序链接将没有请求的上下文 GET 参数。

因此,如果您希望过滤器持续存在,则应将 $_GET 数组与注入链接的自定义参数合并。

合并 $_GET 的示例:

$contextParams = \Yii::$app->getRequest()->getQueryParams();

$dataProvider = new ActiveDataProvider([
    // ...
    'sort' => [
        'params' => array_merge($contextParams, ['custom_id' => 2])
    ]
]);

推荐阅读