46 votes

Obtenir l'URL/URI actuel sans certaines variables $_GET

Comment, dans Yii, obtenir l'URL de la page courante. Par exemple :

http://www.yoursite.com/your_yii_application/?lg=pl&id=15

mais à l'exclusion de la $GET_['lg'] (sans analyser la chaîne manuellement) ?

Je veux dire, je cherche quelque chose de similaire à la Yii::app()->requestUrl / Chtml::link() pour renvoyer des URL moins certaines des $_GET variables.

Modifier : Solution actuelle :

unset $_GET['lg'];

echo Yii::app()->createUrl(
  Yii::app()->controller->getId().'/'.Yii::app()->controller->getAction()->getId() , 
  $_GET 
);

0voto

Ganesh Patel Points 57

Yii2

Url::current([], true);

o

Url::current();

0voto

Syakur Rahman Points 340

Pour Yii2 : Cela devrait être plus sûr Yii::$app->request->absoluteUrl plutôt que Yii::$app->request->url

-1voto

Max Enbachtov Points 9

Essayez d'utiliser cette variante :

<?php echo Yii::app()->createAbsoluteUrl('your_yii_application/?lg=pl', array('id'=>$model->id));?>

C'est le moyen le plus facile, je suppose.

-1voto

Codeformer Points 593

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.

-1voto

nageen nayak Points 564
echo Yii::$app->request->url;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X