Yii2 使绝对值 url 成为应用程序的默认值
Yii2 make absolutes url default on application
我正在寻找一种将 UrlManager 组件默认设置为 return 绝对 urls 的方法。我知道我们可以使用 Url::to([], true).
获得绝对 url
有没有一种方法可以自定义组件并使所有 url 绝对化一次?
谢谢
否决默认 Url class.
将 class 放在您项目中的某处。然后将以下行添加到 _bootstrap.php
文件中 common.
Yii::$classMap['yii\helpers\Url'] = dirname(__DIR__) . '/components/Url.php';
Url class:
<?php
namespace yii\helpers;
class Url extends \yii\helpers\BaseUrl {
// Set the $scheme to be true by default.
public static function to($url = '', $scheme = true) {
return parent::to($url, $scheme);
}
// Set the $scheme to be true by default.
public static function toRoute($route, $scheme = true) {
return parent::toRoute($route, $scheme);
}
}
通过在 bootstrap 文件中添加这一行,您表示无论您在何处加载 yii\helpers\Url
它都应该指向您自己的文件,而不是框架提供的文件。这将使所有 URL 成为绝对的,甚至是其他小部件(yii\widgets\Menu 或任何东西)生成的。
使用此设置,您仍然可以通过设置 false 建立 URL 亲戚。例如Url::to('/some/route', false)
我正在寻找一种将 UrlManager 组件默认设置为 return 绝对 urls 的方法。我知道我们可以使用 Url::to([], true).
获得绝对 url有没有一种方法可以自定义组件并使所有 url 绝对化一次?
谢谢
否决默认 Url class.
将 class 放在您项目中的某处。然后将以下行添加到 _bootstrap.php
文件中 common.
Yii::$classMap['yii\helpers\Url'] = dirname(__DIR__) . '/components/Url.php';
Url class:
<?php
namespace yii\helpers;
class Url extends \yii\helpers\BaseUrl {
// Set the $scheme to be true by default.
public static function to($url = '', $scheme = true) {
return parent::to($url, $scheme);
}
// Set the $scheme to be true by default.
public static function toRoute($route, $scheme = true) {
return parent::toRoute($route, $scheme);
}
}
通过在 bootstrap 文件中添加这一行,您表示无论您在何处加载 yii\helpers\Url
它都应该指向您自己的文件,而不是框架提供的文件。这将使所有 URL 成为绝对的,甚至是其他小部件(yii\widgets\Menu 或任何东西)生成的。
使用此设置,您仍然可以通过设置 false 建立 URL 亲戚。例如Url::to('/some/route', false)