Yii框架将变量从控制器传递到视图

时间:2014-09-23 11:02:41

标签: php templates yii variable-assignment

要将变量传递给登录视图,我使用:

$this->render('login', array('model' => $model));

但我还需要在模板部分footer.php中访问此变量:

我试试这个:

$this->render('footer', array('model' => $model));

但是在footer.php中我尝试访问变量我得到错误“未定义变量”

有什么问题?

3 个答案:

答案 0 :(得分:6)

yii中的模板是通过$this引用从控制器获取数据。

<?php
SomeController extends Controller {
    public $something;

    public function init() {
        $this->something = 'qwerty';
    }
    public function actionA() {
        $this->render('view', array('model' => $model));
    }
}

在模板中:

<?php echo $this->something; ?>

请查看yii的默认模板。面包屑是使用来自控制器的属性显示的,因此这是实现它的最佳方式。

答案 1 :(得分:6)

您可以使用控制器类在视图模板中传递变量,例如

控制器:

SomeController extends Controller {
    
    public function actionIndex() {
          $var1 = 'abc';
          $var2 = '123';
           $this->render('view', 
                           array('var1' => $var1,
                                 'var2' => $var2,
                                ));
    }
}

在视图模板文件中,您可以使用其名称访问这两个变量($ var1&amp; $ var2):

echo $var1; 

echo $var2 

答案 2 :(得分:0)

mvc结构不重定向直接页面。

您创建第一个页脚操作并在重定向到页面后。

您在site_controller.php

中看到了demo show login操作

按照这个