搜索后从gridview的url获取QueryParams(),并为GridView内的锚标记创建另一个具有相同参数的URL

问题描述 投票:0回答:1

我正在使用

GridView::widget
,当我在gridview内的搜索框中输入任何内容时,它会创建如下网址:

/v2/backend/web/index.php/agency/index?AgencySearch%5Bgovt_name%5D=&AgencySearch%5Bcity%5D=&AgencySearch%5Bmember_id%5D=22

现在我需要将这些参数传递给 GridView 状态列下状态图标内的 url。

echo Url::to(['agency/change-status', 'id' => 33, 'set' => 11, Yii::$app->request->getQueryParams()]);

上面的代码创建的网址如下:

/v2/backend/web/index.php/agency/33/change-status/11?1%5BAgencySearch%5D%5Bgovt_name%5D=&1%5BAgencySearch%5D%5Bcity%5D=&1%5BAgencySearch%5D%5Bmember_id%5D=22

这是有道理的,因为

Yii::$app->request->getQueryParams()
是一个数组。注意网址内的
1
change-status/11?1%5BAgencySearch

有没有最简单的 Yii 方法来实现我所需要的,而不是按照字符串中的

Yii::$app->request->getQueryParams()
修改
Url::to()

我正在尝试传递参数,以便在状态更改 pjax 请求后再次在网格上加载内容时保留 gridview 的状态。

php yii yii2 pjax
1个回答
3
投票

使用 array_merge 组合您的路线和参数以及搜索参数。

$params = array_merge(['agency/change-status', 'id' => 33, 'set' => 11], Yii::$app->request->getQueryParams());
echo Url::to($params);
© www.soinside.com 2019 - 2024. All rights reserved.