Heim > Backend-Entwicklung > PHP-Tutorial > Yii2-Methode zum Generieren einer URL

Yii2-Methode zum Generieren einer URL

小云云
Freigeben: 2023-03-20 10:38:01
Original
1644 Leute haben es durchsucht

Im Projekt wird empfohlen, die integrierte URL-Toolklasse von Yii2 zum Generieren von Links zu verwenden, mit der das URL-Verhalten der gesamten Site sehr bequem verwaltet werden kann: Beispielsweise kann das URL-Format der gesamten Site geändert werden Ändern der Konfiguration. 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.

URL-Format für nicht aktivierte Submodule:


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

URL-Format für aktivierte Submodule:


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

In Yii2 integriertes Tool zur URL-Generierung

  1. URL-Manager: urlManager

  2. URL-Hilfsklasse: yiihelpersUrl

Mit dem integrierten Tool zur URL-Generierung können Sie die URL der gesamten Website durch Konfiguration verschönern, ohne den Quellcode zu ändern

URL Manager

URL Manager ist eine integrierte Anwendungskomponente namens 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');
Nach dem Login kopieren

URL-Hilfsklasse

Im Vergleich zum URL-Manager kann die Verwendung der yiihelpersUrl -Hilfsklasse große Vorteile bringen Vereinfachen Sie die URL-Erstellung.

1. Unter der Annahme des aktuellen URL /index.php?r=kernel/article/view&id=10 wird im Folgenden erklärt, wie die URL-Hilfsklasse Url::to() funktioniert (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']);
Nach dem Login kopieren

2. Unter der Annahme des aktuellen URL /index.php?r=kernel/article/view&id=10 wird im Folgenden erläutert, 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');
Nach dem Login kopieren

3. Übernehmen Sie das aktuelle URL /index.php?r=kernel/article/view&id=10, Im Folgenden wird erläutert, 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]);
Nach dem Login kopieren

Verwandte Empfehlungen:

Zusammenfassung der Methoden für PHP-Anforderungs-URLs

Zwei Methoden für Javascript zum Parsen von URLs in das JSON-Format

Detaillierte Erläuterung der Änderung des Stammverzeichnisses von url() in Laravel-Adresse

Das obige ist der detaillierte Inhalt vonYii2-Methode zum Generieren einer URL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage