Maison >développement back-end >tutoriel php >Explication détaillée de la méthode de génération d'URL dans le framework Yii2

Explication détaillée de la méthode de génération d'URL dans le framework Yii2

巴扎黑
巴扎黑original
2018-05-21 11:40:241846parcourir

Cet article présente principalement la méthode de génération d'URL dans Yii2. L'éditeur pense que c'est plutôt bon. Maintenant, je vais le partager avec vous et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil.

Avant-propos

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 gérer très facilement l'ensemble du comportement de l'URL : par exemple, changer le format de l'URL de l'ensemble du site en modifiant la configuration, etc. 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 d'URL de sous-module non activé :

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

Format d'URL de sous-module activé :

// 参数 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

Utiliser l'outil de génération d'URL intégré, vous pouvez embellir l'URL entière du site via la configuration sans changer le code source à l'avenir

URL Manager

URL Manager est un composant d'application intégré nommé gestionnaire d'URL. 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 simplifier la création d'URL.

1. En supposant le URL /index.php?r=kernel/article/view&id=10 actuel, la description suivante indique 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. , la description suivante Comment fonctionne la méthode de classe d'assistance d'URL URL /index.php?r=kernel/article/view&id=10 (recommandé) : Url::toRoute()

// 创建当前路由(仅继承参数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 En supposant le

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

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