I'm using GridView::widget
, when I enter anything on search box inside gridview, it's creating url as below:
/v2/backend/web/index.php/agency/index?AgencySearch%5Bgovt_name%5D=&AgencySearch%5Bcity%5D=&AgencySearch%5Bmember_id%5D=22
Now I need to pass those paramters to url inside status icons present under GridView's Status column.
echo Url::to(['agency/change-status', 'id' => 33, 'set' => 11, Yii::$app->request->getQueryParams()]);
Above code is creating url as below:
/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
And it makes sense because Yii::$app->request->getQueryParams()
is an array. Note 1
inside url change-status/11?1%5BAgencySearch
Is there any simplest Yii way of achieving what I need instead of modifying Yii::$app->request->getQueryParams()
as per Url::to()
that is into string.
I'm trying to pass parameters in order to persist the state of gridview while loading contents again on grid after status change pjax request.
Use array_merge to combine your route and parameters and the search params.
$params = array_merge(['agency/change-status', 'id' => 33, 'set' => 11], Yii::$app->request->getQueryParams());
echo Url::to($params);