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
Gestionnaire d'URL : urlManager
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 :
Yii::$app->urlManager->createUrl($params)
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');
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!