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
URL-Format für aktivierte Submodule:
// 参数 r 中的 kernel 表示子模块 http://www.example.com/index.php?r=kernel/article/view&id=100
In Yii2 integriertes Tool zur URL-Generierung
URL-Manager: urlManager
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:
Yii::$app->urlManager->createUrl($params)
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 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']);
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');
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]);
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!