Home » Php » php – Getting base URL in Yii 2

php – Getting base URL in Yii 2

Posted by: admin April 23, 2020 Leave a comment

Questions:

I am trying to get the base URL for the project in Yii 2 but it doesn’t seem to work. According to this page you used to be able to do:

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

In Yii 1, but it seems that that method in Yii 2 no longer accepts a parameter?

I’ve tried doing it without true, such as:

Yii::$app->getBaseUrl();

But it just returns empty.

How can you do this in Yii 2?

How to&Answers:

To get base URL of application you should use yii\helpers\Url::base() method:

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 uses base URL by default, but it could be easily changed (for example to https://example.com/myapp/home) so you should not rely on assumption that it will always return base URL. If there is a special Url::base() method to get base URL, then use it.

Answer:

My guess is that you need to look at aliases.

Using aliases would be like:

Yii::getAlias('@web');

You can also always rely on one of these two:

Yii::$app->homeUrl;

Url::base();

Answer:

To get base URL Yii2 using:

Url::home(true)

Answer:

Use it like this:

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

More information on base, canonical, home URLs:
http://www.yiiframework.com/doc-2.0/yii-helpers-url.html

Answer:

may be you are looking for this

Yii::$app->homeUrl

you can also use this

Url::base().

or this

Url::home();

Answer:

Try this:

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

Answer:

I searched for a solution how we can do like in codeigniter, routing like
e.g.

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

Only way we can do that in Yii2

<?=Url::toRoute('/profile') ?>

Answer:

You can reach your base URL by this:

Yii::$app->request->baseUrl

Answer:

In yii 1 this code return the hostname

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

In yii2 the following

Yii::$app->getBaseUrl();

not exists as method of Yii::$app and it triggers an error with message

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

You could use Request class that encapsulates the $_SERVER

Yii::$app->request->hostInfo

Answer:

Try below code. It should work. It will return base URL name

use yii\helpers\Url;

Url::home(‘http’) // http://HostName/
OR
Url::home(‘https’) // https://HostName/