在Yii2.0版本中中,如何从控制器里面传递变量到布局文件layouts里的模板中
在Yii2.0中,view模板文件里面的$this已经不是对应的控制器对象了,而是View对象的变量。我们可以通过View对象中的params变量来传递数据。
先获取当前View,然后给view设置参数,
view里面的$this由控制器对象变为View对象是其中的一个大改变,这样整个框架也更清晰了。
先获取当前View,然后给view设置参数,
class SiteController extends Controller
{
public function actionIndex()
{
//设置当前view的params参数,
$view = Yii::$app->view;
$view->params["layoutData"]="test";
return $this->render("index");
}
}在layouts/main.php
<?php
use yiihelpersHtml;
use yiiootstrapNav;
use yiiootstrapNavBar;
use yiiwidgetsBreadcrumbs;
use frontendassetsAppAsset;
use frontendwidgetsAlert;
/**
* @var yiiwebView $this
* @var string $content
*/
AppAsset::register($this);
?>
<?php $this->beginPage() ?>
<!DOCTYPE html>
<html lang="<?= Yii::$app->language ?>">
<head>
<meta charset="<?= Yii::$app->charset ?>"/>
<title><?= Html::encode($this->title) ?></title>
<?php $this->head() ?>
</head>
<body>
<?php $this->beginBody() ?>
<?php echo $this->params["layoutData"]?>
..............view里面的$this由控制器对象变为View对象是其中的一个大改变,这样整个框架也更清晰了。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
