Ich versuche in Yii 2 die Basis-URL für das Projekt zu erhalten, aber es scheint nicht zu funktionieren. Nach dieser Seite warst du in der Lage:
Yii::app()->getBaseUrl(true);
In Yii 1, aber es scheint, dass diese Methode in Yii 2 keine Parameter mehr akzeptiert?
Ich habe es ohne wahr versucht, wie:
Yii::$app->getBaseUrl();
Aber es kehrt einfach leer zurück.
Wie kannst du das in Yii 2 machen?
Um die Basis-URL der Anwendung zu erhalten, sollten Sie die yii\helpers\Url::base()
-Methode verwenden:
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()
sollte in diesem Fall NICHT verwendet werden. Application::$homeUrl
verwendet standardmäßig die Basis-URL, kann jedoch leicht geändert werden (z. B. in https://example.com/myapp/home
). Sie sollten sich also nicht auf die Annahme verlassen, dass sie immer die Basis-URL zurückgibt. Wenn es eine spezielle Url::base()
-Methode gibt, um die Basis-URL abzurufen, verwenden Sie sie.
Meine Vermutung ist, dass Sie Aliasnamen betrachten müssen.
Die Verwendung von Aliases wäre wie folgt:
Yii::getAlias('@web');
Sie können sich auch immer auf eine dieser beiden Arten verlassen:
Yii::$app->homeUrl;
Url::base();
So rufen Sie die Basis-URL Yii2 ab:
Url::home(true)
Verwenden Sie es so:
Yii::$app->getUrlManager()->getBaseUrl()
Weitere Informationen zu Basis-, kanonischen und Home-URLs: http://www.yiiframework.com/doc-2.0/yii-helpers-url.html
vielleicht suchen Sie das
Yii::$app->homeUrl
sie können dies auch verwenden
Url::base().
oder dieses
Url::home();
Sie können Ihre Basis-URL folgendermaßen erreichen:
Yii::$app->request->baseUrl
Versuche dies:
$baseUrl = Yii::$app->urlManager->createAbsoluteUrl(['/']);
Ich suchte nach einer Lösung, wie wir es in Codeigniter machen können, Routing wie
base_url()
base_url('profile')
base_url('view/12')
<?=Url::toRoute('/profile') ?>