调用了模板,可模板没有任何业务变量可用。这个时候我们需要将控制器上的业务变量赋值给模板使用。模板赋值,使用 assign() 方法。该方法只能在控制器中使用。

参数说明备注$name赋给模板调用的变量名称必填$value控制器上的业务变量非必填

PHP的全局变量可以不赋值,直接在模板中调用:如$_SERVER、$_GET、$_POST、$_SESSION等。

在某个控制器有如下业务变量

  1. <?php
  2. ...某控制器...
  3. public function index(){
  4. $content = array( 'title' => 'PESCMS', 'content' => '此处省略2的128次方字' );
  5.  
  6. $list = array('0' => array(), '1' => array() ); //这是一个二维数组。太长了,大家知道就行了
  7.  
  8. $url = $this->url('Home-Test-index');
  9.  
  10. $this->assign($content);
  11.  
  12. $this->assign('list', $list);
  13.  
  14. $this->assign('url', $url);
  15. }

在对应的模板,上面三个赋值将可以输入如下变量:

$this->assign($content):

  1. <?= $title ?> <?= $content ?>

当业务变量是一个数组。且将该变量放于赋值方法的第一个参数中,那么该数组内的第一级键值将会成为一个单独的变量。正如上面的$content数组中,键值title和content成为了模板变量。

$this->assign('list', $list);

  1. <?= $list[0]['doc_title']; //list变量是一个数组,在这里我们输出他指定的内容值 ?>

$this->assign('url', $url);

  1. <?= $url ?>