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

时间:2016-11-13 14:52:57

标签: yii yii2 pjax

我正在使用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的状态。

1 个答案:

答案 0 :(得分:2)

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

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