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

getQueryParams() from gridview's url after search and create another URL with same params for anchor tag inside GridView

我正在使用 GridView::widget,当我在 gridview 内的搜索框中输入任何内容时,它正在创建 url,如下所示:

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

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

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

以上代码正在创建 url,如下所示:

/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 里面 url change-status/11?1%5BAgencySearch

是否有任何最简单的 Yii 方法来实现我需要的而不是根据 Url::to() 修改 Yii::$app->request->getQueryParams() 到字符串中。

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

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

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