在Yii 2中获取基本URL

时间:2015-01-09 08:33:50

标签: php yii yii2

我正在尝试在Yii 2中获取项目的基本URL,但它似乎不起作用。根据您曾经能够做到的this page

Yii::app()->getBaseUrl(true);

在Yii 1中,但似乎Yii 2中的that method不再接受参数?

我尝试过这样做而不是真的,例如:

Yii::$app->getBaseUrl();

但它只是返回空白。

你怎么能在Yii 2中做到这一点?

10 个答案:

答案 0 :(得分:25)

我的猜测是你需要查看别名。

使用别名就像:

Yii::getAlias('@web');

您也可以始终依赖以下两种方法之一:

Yii::$app->homeUrl;

Url::base();

答案 1 :(得分:18)

要获取应用程序的基本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() Application::$homeUrl默认情况下使用基本网址,但可以轻松更改(例如https://example.com/myapp/home),因此您不应该依赖它始终返回基本网址的假设。如果有一个特殊的Url::base()方法来获取基本网址,请使用它。

答案 2 :(得分:7)

像这样使用:

Yii::$app->getUrlManager()->getBaseUrl()

有关基本,规范,家庭网址的更多信息: http://www.yiiframework.com/doc-2.0/yii-helpers-url.html

答案 3 :(得分:7)

使用以下方式获取基本网址Yii2:

Url::home(true)

答案 4 :(得分:3)

可能是你在寻找这个

Yii::$app->homeUrl

您也可以使用此

Url::base().

或者

Url::home();

答案 5 :(得分:2)

试试这个:

$baseUrl = Yii::$app->urlManager->createAbsoluteUrl(['/']);

答案 6 :(得分:1)

我搜索了一个解决方案,我们可以在codeigniter中做什么,路由就像 例如

base_url()
base_url('profile')
base_url('view/12')

我们只能在Yii2

中做到这一点
<?=Url::toRoute('/profile') ?>

答案 7 :(得分:0)

您可以通过以下方式访问基本网址:

Yii::$app->request->baseUrl

答案 8 :(得分:-1)

尝试以下代码。它应该工作。它将返回基本URL名称

使用yii \ helpers \ Url;

Url :: home(&#39; http&#39;)// http://HostName/ 要么 网址::主页(&#39; https&#39;)// https://HostName/

答案 9 :(得分:-1)

在yii 1中,此代码返回主机名

Yii::app()->getBaseUrl(true);

在yii2中以下

Yii::$app->getBaseUrl();

不存在作为Yii :: $ app的方法,它会触发错误消息

Calling unknown method: yii\web\Application::getBaseUrl() 

您可以使用封装$ _SERVER

的Request类
Yii::$app->request->hostInfo