在 Yii 2 中获取基础 URL
Getting base URL in Yii 2
我正在尝试为 Yii 2 中的项目获取基础 URL,但它似乎不起作用。根据 this page 你曾经能够做到:
Yii::app()->getBaseUrl(true);
在 Yii 1 中,但在 Yii 2 中似乎 that method 不再接受参数?
我试过不用true,比如:
Yii::$app->getBaseUrl();
但它 returns 是空的。
如何在 Yii 2 中做到这一点?
我的猜测是您需要查看别名。
使用别名就像:
Yii::getAlias('@web');
您也可以始终依赖以下两者之一:
Yii::$app->homeUrl;
Url::base();
这样使用:
Yii::$app->getUrlManager()->getBaseUrl()
有关基本、规范、主页 URL 的更多信息:
http://www.yiiframework.com/doc-2.0/yii-helpers-url.html
可能您正在寻找这个
Yii::$app->homeUrl
你也可以用这个
Url::base().
或这个
Url::home();
您可以通过以下方式到达基地 URL:
Yii::$app->request->baseUrl
要获取基础 URL Yii2 使用:
Url::home(true)
我搜索了一个解决方案,我们可以像在 codeigniter 中那样做,像路由一样
例如
base_url()
base_url('profile')
base_url('view/12')
我们在 Yii2 中唯一可以做到的方法
<?=Url::toRoute('/profile') ?>
试试这个:
$baseUrl = Yii::$app->urlManager->createAbsoluteUrl(['/']);
试试下面的代码。它应该工作。它将 return base URL name
使用yii\helpers\Url;
Url::home('http') // http://HostName/
要么
Url::home('https') // https://HostName/
要获取应用程序的基础 URL,您应该使用 yii\helpers\Url::base()
方法:
use yii\helpers\Url;
Url::base(); // /myapp
Url::base(true); // http(s)://example.com/myapp - depending on current schema
Url::base('https'); // https://example.com/myapp
Url::base('http'); // http://example.com/myapp
Url::base(''); // //example.com/myapp
Url::home()
should NOT be used in this case. Application::$homeUrl
默认使用基数 URL,但它可以很容易地改变(例如 https://example.com/myapp/home
)所以你不应该依赖它总是 [=22] 的假设=]基地URL。如果有特殊的Url::base()
方法获取baseURL,那就用吧
在 yii 1 中这段代码 return 主机名
Yii::app()->getBaseUrl(true);
在yii2下面
Yii::$app->getBaseUrl();
作为 Yii::$app 的方法不存在,它会触发错误消息
Calling unknown method: yii\web\Application::getBaseUrl()
您可以使用封装了 $_SERVER
的请求 class
Yii::$app->request->hostInfo
我正在尝试为 Yii 2 中的项目获取基础 URL,但它似乎不起作用。根据 this page 你曾经能够做到:
Yii::app()->getBaseUrl(true);
在 Yii 1 中,但在 Yii 2 中似乎 that method 不再接受参数?
我试过不用true,比如:
Yii::$app->getBaseUrl();
但它 returns 是空的。
如何在 Yii 2 中做到这一点?
我的猜测是您需要查看别名。
使用别名就像:
Yii::getAlias('@web');
您也可以始终依赖以下两者之一:
Yii::$app->homeUrl;
Url::base();
这样使用:
Yii::$app->getUrlManager()->getBaseUrl()
有关基本、规范、主页 URL 的更多信息: http://www.yiiframework.com/doc-2.0/yii-helpers-url.html
可能您正在寻找这个
Yii::$app->homeUrl
你也可以用这个
Url::base().
或这个
Url::home();
您可以通过以下方式到达基地 URL:
Yii::$app->request->baseUrl
要获取基础 URL Yii2 使用:
Url::home(true)
我搜索了一个解决方案,我们可以像在 codeigniter 中那样做,像路由一样 例如
base_url()
base_url('profile')
base_url('view/12')
我们在 Yii2 中唯一可以做到的方法
<?=Url::toRoute('/profile') ?>
试试这个:
$baseUrl = Yii::$app->urlManager->createAbsoluteUrl(['/']);
试试下面的代码。它应该工作。它将 return base URL name
使用yii\helpers\Url;
Url::home('http') // http://HostName/ 要么 Url::home('https') // https://HostName/
要获取应用程序的基础 URL,您应该使用 yii\helpers\Url::base()
方法:
use yii\helpers\Url;
Url::base(); // /myapp
Url::base(true); // http(s)://example.com/myapp - depending on current schema
Url::base('https'); // https://example.com/myapp
Url::base('http'); // http://example.com/myapp
Url::base(''); // //example.com/myapp
Url::home()
should NOT be used in this case. Application::$homeUrl
默认使用基数 URL,但它可以很容易地改变(例如 https://example.com/myapp/home
)所以你不应该依赖它总是 [=22] 的假设=]基地URL。如果有特殊的Url::base()
方法获取baseURL,那就用吧
在 yii 1 中这段代码 return 主机名
Yii::app()->getBaseUrl(true);
在yii2下面
Yii::$app->getBaseUrl();
作为 Yii::$app 的方法不存在,它会触发错误消息
Calling unknown method: yii\web\Application::getBaseUrl()
您可以使用封装了 $_SERVER
的请求 classYii::$app->request->hostInfo