Yii2在应用程序上使绝对URL成为默认值

时间:2018-01-17 11:18:12

标签: php yii2 yii2-advanced-app

我正在寻找一种方法来默认设置UrlManager组件返回绝对网址。我知道我们可以使用Url :: to([],true)来获取绝对URL。

有没有办法自定义组件,它们会使所有网址绝对一次?

由于

1 个答案:

答案 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)