我正在尝试在Yii 2中获取项目的基本URL,但它似乎不起作用。根据您曾经能够做到的this page:
Yii::app()->getBaseUrl(true);
在Yii 1中,但似乎Yii 2中的that method不再接受参数?
我尝试过这样做而不是真的,例如:
Yii::$app->getBaseUrl();
但它只是返回空白。
你怎么能在Yii 2中做到这一点?
答案 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')
<?=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