Maison >développement back-end >tutoriel php >Méthode Yii2 pour générer une URL
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
Gestionnaire d'URL : urlManager
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 :
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 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!