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
URL-Manager: urlManager
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:
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 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!