Maison >développement back-end >tutoriel php >Méthode Yii2 pour générer une URL

Méthode Yii2 pour générer une URL

小云云
小云云original
2018-02-12 14:43:501646parcourir

Dans le projet, il est recommandé d'utiliser la classe d'outils URL intégrée de Yii2 pour générer des liens, qui peuvent très facilement gérer le comportement de l'URL de l'ensemble du site : par exemple, changer le format d'URL de l'ensemble du site en modifier la configuration. Pour une utilisation plus avancée des URL, veuillez vous référer à la documentation officielle. Cet article présente uniquement plusieurs façons pour Yii2 de générer des URL.

Format de lien URL par défaut Yii2

Le format de lien URL par défaut Yii2 fait référence au format lorsque l'embellissement d'URL est activé.

Format URL pour les sous-modules non activés :


// 参数 r 中的 article 表示控制器, view 表示动作
http://www.example.com/index.php?r=article/view&id=100

Format URL pour les sous-modules activés :


// 参数 r 中的 kernel 表示子模块
http://www.example.com/index.php?r=kernel/article/view&id=100

Outil de génération d'URL intégré Yii2

  1. Gestionnaire d'URL : urlManager

  2. Classe d'assistance d'URL : yiihelpersUrl

À l'aide de l'outil de génération d'URL intégré, vous pouvez embellir l'URL de l'ensemble du site via la configuration sans modifier le code source

Gestionnaire d'URL

URL Manager est un composant d'application intégré appelé urlManager. Dans les applications WEB et les applications console, les URL peuvent être créées des deux manières suivantes :

  1. Yii::$app->urlManager->createUrl($params)

  2. Yii::$app->urlManager->createAbsoluteUrl($params, $schema = null)

createUrl génère le répertoire racine Chemins relatifs, par exemple : /index.php?r=article/view

createAbsoluteUrl() La méthode génère des chemins absolus, par exemple : http://www.example.com/index.php?r=article/view

Gestionnaires d'URL couramment utilisés pour créer des URL Exemple :


// URL:/index.php?r=article/view
\Yii::$app->urlManager->createUrl('article/view');

// URL:/index.php?r=article/view&id=2
\Yii::$app->urlManager->createUrl(['article/view','id'=>2]);

// URL: http://www.example.com?r=kernel/article/view
echo \Yii::$app->urlManager->createAbsoluteUrl('kernel/article/view');

Classe d'assistance d'URL

Par rapport au gestionnaire d'URL, l'utilisation de la classe d'assistance yiihelpersUrl peut grandement Simplifiez la création d'URL.

1. En supposant le URL /index.php?r=kernel/article/view&id=10 actuel, ce qui suit explique le fonctionnement de la classe d'assistance d'URL Url::to() (non recommandé) :


// 创建当前 URL
// 显示:/?r=kernel/article/view&id=10
echo Url::to();

// 创建当前 URL
// 显示:http://www.example.com/?r=kernel/article/view&id=10
echo Url::to('', true);

// 字符参数,没啥用
// 显示:kernel/article/view
echo Url::to('kernel/article/view');

// 创建路由,数组参数的自动调用 Url::toRoute(...)
// 显示:/index.php?r=kernel/article/view
echo Url::to(['article/view']);

2 . En supposant le URL /index.php?r=kernel/article/view&id=10 actuel, ce qui suit explique le fonctionnement de la méthode de classe d'assistance d'URL Url::toRoute() (recommandé) :


// 创建当前路由(仅继承参数r的值)
// 显示:/index.php?r=kernel/article/view
echo Url::toRoute([]);

// 相同的模块和控制器,不同的动作(仅继承参数r的值)
// 显示:/index.php?r=kernel/article/list
echo Url::toRoute('list');

// 相同的模块和控制器,不同的动作(仅继承参数r的值)
// 显示:/index.php?r=kernel/article/list&cat=contact
echo Url::toRoute(['list','cat'=>10]);

// 相同模块,不同控制器和动作(仅继承参数r的值)
// 显示:/index.php?r=kernel/product/index
echo Url::toRoute('product/index');

// 绝对路由,不管是被哪个模块和控制器调用
// 显示:/index.php?r=product/index
echo Url::toRoute('/product/index');

// 控制器动作 `actionListHot` 的 URL 格式(仅继承参数r的值,区分大小写)
// 显示:/index.php?r=kernel/article/list-hot
echo Url::toRoute('list-hot');

// 从别名中获取 URL 
// 显示:http://www.baidu.com/
Yii::setAlias('@baidu', 'http://www.baidu.com/');
echo Url::to('@baidu');

3. Supposons le URL /index.php?r=kernel/article/view&id=10 actuel. 🎜>, Ce qui suit explique le fonctionnement de la méthode de classe d'assistance d'URL Url::current() (recommandé) :


// 创建当前 URL(包括路由和参数)
// 显示:/?r=kernel/article/view&id=10
echo Url::current();

// 移除参数 id
// 显示:/?r=kernel/article/view
echo Url::current(['id'=>null]);

// 新增参数 cat
// 显示:/?r=kernel/article/view&id=10&cat=2
echo Url::current(['cat'=>2]);

Recommandations associées :

Résumé des méthodes pour php demandant des URL

Deux méthodes pour javascript pour analyser les URL au format json

Explication détaillée de la modification de la racine de l'url() dans l'adresse Laravel

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn