调用了模板,可模板没有任何业务变量可用。这个时候我们需要将控制器上的业务变量赋值给模板使用。模板赋值,使用 assign() 方法。该方法只能在控制器中使用。
参数说明备注$name赋给模板调用的变量名称必填$value控制器上的业务变量非必填
PHP的全局变量可以不赋值,直接在模板中调用:如$_SERVER、$_GET、$_POST、$_SESSION等。
在某个控制器有如下业务变量
- <?php
- ...某控制器...
- public function index(){
- $content = array( 'title' => 'PESCMS', 'content' => '此处省略2的128次方字' );
- $list = array('0' => array(), '1' => array() ); //这是一个二维数组。太长了,大家知道就行了
- $url = $this->url('Home-Test-index');
- $this->assign($content);
- $this->assign('list', $list);
- $this->assign('url', $url);
- }
在对应的模板,上面三个赋值将可以输入如下变量:
$this->assign($content):
- <?= $title ?> <?= $content ?>
当业务变量是一个数组。且将该变量放于赋值方法的第一个参数中,那么该数组内的第一级键值将会成为一个单独的变量。正如上面的$content数组中,键值title和content成为了模板变量。
$this->assign('list', $list);
- <?= $list[0]['doc_title']; //list变量是一个数组,在这里我们输出他指定的内容值 ?>
$this->assign('url', $url);
- <?= $url ?>