Большинство ответов неверны.
Вопрос в том, чтобы получить URL без какого-либо параметра запроса.
Вот функция, которая работает. Это делает больше вещей на самом деле. Вы можете удалить ненужный параметр и добавить или изменить существующий.
/**
* Function merges the query string values with the given array and returns the new URL
* @param string $route
* @param array $mergeQueryVars
* @param array $removeQueryVars
* @return string
*/
public static function getUpdatedUrl($route = '', $mergeQueryVars = [], $removeQueryVars = [])
{
$currentParams = $request = Yii::$app->request->getQueryParams();
foreach($mergeQueryVars as $key=> $value)
{
$currentParams[$key] = $value;
}
foreach($removeQueryVars as $queryVar)
{
unset($currentParams[$queryVar]);
}
$currentParams[0] = $route == '' ? Yii::$app->controller->getRoute() : $route;
return Yii::$app->urlManager->createUrl($currentParams);
}
использование:
ClassName:: getUpdatedUrl('',[],['remove_this1','remove_this2'])
Это удалит параметры запроса «remove_this1» и «remove_this2» из URL и вернет вам новый URL