Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Methode zum Generieren von URLs im Yii2-Framework

Detaillierte Erläuterung der Methode zum Generieren von URLs im Yii2-Framework

巴扎黑
巴扎黑Original
2018-05-21 11:40:241784Durchsuche

In diesem Artikel wird hauptsächlich die Methode zum Generieren von URLs in Yii2 vorgestellt. Der Herausgeber findet sie recht gut. Jetzt werde ich sie mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Editor und werfen wir einen Blick darauf.

Vorwort

Im Projekt wird empfohlen, die integrierte URL-Toolklasse von Yii2 zu verwenden, um Links zu generieren Verwalten Sie das gesamte URL-Verhalten sehr bequem: Ändern Sie beispielsweise das URL-Format der gesamten Site durch Ändern der Konfiguration usw. Informationen zur erweiterten Verwendung von URLs finden Sie in der offiziellen Dokumentation. In diesem Artikel werden nur verschiedene Möglichkeiten für Yii2 zum Generieren von URLs vorgestellt.

Yii2-Standard-URL-Linkformat

Yii2-Standard-URL-Linkformat bezieht sich auf das Format, wenn die URL-Verschönerung aktiviert ist.

Nicht aktiviertes Submodul-URL-Format:

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

Aktiviertes Submodul-URL-Format:

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

Yii2 integriertes URL-Generierungstool

  1. URL-Manager: urlManager

  2. URL-Hilfsklasse: yiihelpersUrl

Verwenden Sie das integrierte Tool zur URL-Generierung. Sie können die URL der gesamten Website durch Konfiguration verschönern, ohne den Quellcode in Zukunft zu ändern

URL-Manager

URL-Manager ist eine integrierte Anwendungskomponente mit dem Namen URLManager. In WEB-Anwendungen und Konsolenanwendungen können URLs auf die folgenden zwei Arten erstellt werden:

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

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

createUrl Methode generiert das Stammverzeichnis Relative Pfade, zum Beispiel: /index.php?r=article/view

createAbsoluteUrl() Die Methode generiert absolute Pfade, zum Beispiel: http://www.example.com/index.php?r=article/view

Häufig verwendete URL-Manager zum Erstellen von URLs Beispiel:

// 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');

URL-Hilfsklasse

Im Vergleich zum URL-Manager kann die Verwendung der yiihelpersUrl -Hilfsklasse die Erstellung von URLs erheblich vereinfachen.

1. Unter der Annahme der aktuellen URL /index.php?r=kernel/article/view&id=10 funktioniert die URL-Hilfsklasse Url::to() (nicht empfohlen):

// 创建当前 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. Gehen Sie von der aktuellen URL /index.php?r=kernel/article/view&id=10 aus , die folgende Beschreibung, wie die Methode der URL-Hilfsklasse Url::toRoute() funktioniert (empfohlen):

// 创建当前路由(仅继承参数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. Unter der Annahme der aktuellen URL /index.php?r=kernel/article/view&id=10 wird im Folgenden erklärt, wie die Methode der URL-Hilfsklasse Url::current() funktioniert ( empfohlen):

// 创建当前 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]);

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Methode zum Generieren von URLs im Yii2-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn