【发布时间】:2014-11-20 17:46:21
【问题描述】:
我最近开始使用Yii 2,但布局文件出现了一些问题,出现以下错误:
Call to undefined method Yii::app()
这是我的布局文件:
<?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" rel="stylesheet" media="screen">
<link href="<?=Yii::app()->request->baseUrl;?>/css/custom.css" rel="stylesheet" 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() ?>
当我使用 Yii::$app 时,我没有遇到任何问题,但如果我使用 Yii::app(),我会收到该错误。
我在阅读时开始在某些地方使用Yii::app(),并被告知您应该使用以下内容确保在视图中包含绝对路径名:
Yii::app()->request->baseUrl
...并包括 jQuery 使用:
Yii::app()->clientScript->registerCoreScript("jquery");
但是,当我对 app() 执行任何操作时,我会收到上述错误。
我尝试用$app 替换app();页面加载正常,但Yii::$app->request->baseUrl 中有一个空白值。
我在这里做错了什么!?
【问题讨论】: