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

小云云
Libérer: 2023-03-20 10:38:01
original
1609 Les gens l'ont consulté

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
Copier après la connexion

Format URL pour les sous-modules activés :


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

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');
Copier après la connexion

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']);
Copier après la connexion

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');
Copier après la connexion

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]);
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal