日期:2014-05-20 浏览次数:20793 次
这一节讲的是控制器如何向视图传递变量。看了上一节代码的同学估计已经知道如何给变量赋值了,我在这里简单的举例说明下:
public function indexAction()
{
// action body
//为变量赋值
$this->view->a = "Hay";
$this->view->b = "bbb";
$this->view->c = "ccc";
}
从上边的程序你可以看出来,用此方式赋值特麻烦,要多次赋值。可以将变量放进一个数组或者对象中。assign()方法呢就允许通过数组或者对象赋值:
public function indexAction()
{
// action body
$array = array(
'a' => "Hay",
'b' => "bbb",
'c' => "ccc",
);
$this->view->assign($array);
}
其效果和上边效果是一样的,那么通过对象赋值就有点小不一样了,就是要先把对象转型为数组:
public function indexAction()
{
// action body
$obj = new stdClass();
$obj->a = "Hay";
$obj->b= "bbb";
$obj->c = "ccc";
$this->view->assign((array) $obj);
}
assign()方法还有一种用法就是使用两个字符串作为assign()方法的参数。这样第一个参数为赋值的变量名,第二个参数作为对应的值。如下:
$this->view->assign('a',"Hay");
$this->view->assign('b',"bbb");
$this->view->assign('c',"ccc");
至于视图部分代码如下:index.phtml
<?php
echo $this->a."<br>";
echo $this->b."<br><br><br><br>";
echo $this->c."<br>";
?>