Immer Call to undefined method Yii::app() innerhalb der layout-Ansicht
Ich habe vor kurzem angefangen mit Yii 2
und ich habe einige Probleme mit dem layout-Datei mit immer die folgende Fehlermeldung:
Call to undefined method Yii::app()
Dies ist meine layout Datei:
<?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $content string */
?>
<?php $this->beginPage() ?>
<!DOCTYPE html>
<html lang="<?=Yii::$app->language?>">
<head>
<title><?=Html::encode($this->title)?></title>
<meta charset="<?=Yii::$app->charset?>"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<?=Html::csrfMetaTags()?>
<link href="<?=Yii::app()->request->baseUrl;?>/css/bootstrap.min.css" media="screen">
<link href="<?=Yii::app()->request->baseUrl;?>/css/custom.css" media="screen">
<script type="text/javascript" src="<?=Yii::app()->request->baseUrl;?>/js/bootstrap.min.js"></script>
<script type="text/javascript" src="<?=Yii::app()->request->baseUrl;?>/js/scripts.js"></script>
<!--[if lte IE 8]>
<script src="<?=Yii::app()->request->baseUrl;?>/js/html5shiv.min.js"></script>
<script src="<?=Yii::app()->request->baseUrl;?>/js/respond.min.js"></script>
<![endif]-->
<?php $this->head() ?>
</head>
<body>
<?php $this->beginBody() ?>
<?=$content?>
<?php $this->endBody() ?>
</body>
</html>
<?php $this->endPage() ?>
Wenn ich Yii::$app
bekomme ich keine Probleme, aber wenn ich Yii::app()
dann bekomme ich diesen Fehler.
Begann ich mit Yii::app()
an einigen stellen Las ich um und mir wurde gesagt, Sie sollten die unten, um stellen Sie sicher, dass absolute Pfadnamen innerhalb der Ansichten:
Yii::app()->request->baseUrl
...und jQuery verwenden:
Yii::app()->clientScript->registerCoreScript("jquery");
Aber wenn ich alles mit app()
ich bekomme den oben genannten Fehler.
Ich versucht, anstelle app()
mit $app
; die Seite geladen ist in Ordnung, aber es war ein leerer Wert in Yii::$app->request->baseUrl
.
Was mache ich hier falsch!?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Yii 2,
$app
ist eine Eigenschaft von Yii, nicht eine Methode, so dass Sie verwenden solltenYii::$app->blah
.Quelle
Versuchen Sie dies:
Yii::$app->request->baseUrl;
Yii::$app
ist die static var für die Yii2 Anwendung Klasse, 'yii\web\Application". Es bezieht sich auf eine Instanz des Yii-Anwendung Klasse. Da dieRequest
Klasse ist so konfiguriert, wie eine Anwendung, die Komponente standardmäßig haben Sie Zugang zu den Tonnen von nützlichen Eigenschaften: Anfrage Referenz-KlasseYii2 kommt auch mit einer Reihe von helper-Klassen, die viele der gleichen Dinge: BaseUrl-Helper
Nutzung ist:
Url::base();
...achten Sie auf den namespace, indemuse yii\helpers\Url;
an der Spitze des Controllers (unterhalb des main-namespace).Yii::$app
ist die statische variable für die Yii2 Anwendung Klasse, 'yii\web\Application". Es bezieht sich auf eine Instanz des Yii-Anwendung Klasse. Da dierequest
Klasse ist so konfiguriert, wie eine Komponente standardmäßig haben Sie Zugriff auf alle nützlichen Eigenschaften.