La plupart des réponses sont fausses.
La question est d'obtenir l'url sans paramètre de requête.
Voici la fonction qui fonctionne. Elle fait plus de choses en fait. Vous pouvez supprimer le paramètre que vous ne voulez pas et vous pouvez ajouter ou modifier un paramètre existant.
/**
* 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);
}
l'usage :
ClassName:: getUpdatedUrl('',[],['remove_this1','remove_this2'])
Cela supprimera les paramètres de requête 'remove_this1' et 'remove_this2' de l'URL et vous renverra la nouvelle URL.