我正在寻找一种方法来默认设置UrlManager组件返回绝对网址。我知道我们可以使用Url :: to([],true)来获取绝对URL。
有没有办法自定义组件,它们会使所有网址绝对一次?
由于
答案 0 :(得分:0)
否决默认的Url类。
将课程放在项目中的某个位置。然后将以下行添加到共同的_bootstrap.php
文件中。
Yii::$classMap['yii\helpers\Url'] = dirname(__DIR__) . '/components/Url.php';
网址类:
<?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);
}
}
通过在引导程序文件中添加该行,您可以说在您加载yii\helpers\Url
的任何地方都应该指向您自己的文件而不是框架提供的文件。这将使所有URL成为绝对URL,甚至是其他小部件生成的URL(yii \ widgets \ Menu或任何其他内容)。
使用此设置,您仍然可以通过设置false来建立URL相对。例如Url::to('/some/route', false)