getQueryParams() из URL-адреса gridview после поиска и создания другого URL-адреса с теми же параметрами для тега привязки внутри GridView

Я использую GridView::widget, когда я ввожу что-либо в поле поиска внутри сетки, он создает 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 добиться того, что мне нужно, вместо изменения Yii::$app->request->getQueryParams() в соответствии с Url::to(), который находится в строке.

Я пытаюсь передать параметры, чтобы сохранить состояние gridview при повторной загрузке содержимого в сетку после запроса pjax на изменение статуса.


person Vipul    schedule 13.11.2016    source источник


Ответы (1)


Используйте array_merge, чтобы объединить маршрут, параметры и параметры поиска.

$params = array_merge(['agency/change-status', 'id' => 33, 'set' => 11], Yii::$app->request->getQueryParams());
echo Url::to($params);
person topher    schedule 13.11.2016
comment
Отлично, таким образом имеет смысл использовать array_merge, я просто думал об объединении параметров и пропустил часть URL напрямую. - person Vipul; 14.11.2016