Yii 2 Gridview 排序标题-在 url

问题描述

当我单击网格视图的列标题时,它正在排序,并且在 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])
    ]
]);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...