一、前言
模板赋值和渲染是在PHP开发网站是一个重要的组成部分,掌握其使用方法是必不可少的一个技能,接下来介绍如何使用模板进行赋值以及渲染。
二、模板赋值
【1】如果要在模板中输出变量,必须在在控制器中把变量传递给模板,系统提供了assign方法对模板变量赋值,无论何种变量类型都统一使用assign赋值。
$this->assign('name',$value);
// 下面的写法是等效的
$this->name = $value;
注意:assign方法必须在display和show方法之前调用,并且系统只会输出设定的变量,其它变量不会输出(系统变量例外),一定程度上保证了变量的安全性,赋值后,就可以在模板文件中输出变量了,如果使用的是内置模板的话,就可以这样输出: {$name}
【2】如果要同时输出多个模板变量,可以使用下面的方式:
$array['name'] = 'thinkphp';
$array['email'] = 'liu21st@gmail.com';
$array['phone'] = '12335678';
$this->assign($array);
这样,就可以在模板文件中同时输出name、email和phone三个变量。
三、渲染模板
【1】渲染模板输出最常用的是使用display方法,调用格式:
display('[模板文件]'[,'字符编码'][,'输出类型'])
下面是一个最典型的用法,不带任何参数:
// 不带任何参数 自动定位当前操作的模板文件
$this->display();
//$this->display('User/add');
【2】系统会按照默认规则自动定位模板文件,其规则是:
- 如果当前没有启用模板主题则定位到:当前模块/默认视图目录/当前控制器/当前操作.html
- 如果有启用模板主题则定位到:当前模块/默认视图目录/当前主题/当前控制器/当前操作.html
- 如果有更改TMPL_FILE_DEPR设置(假设 ‘TMPL_FILE_DEPR’=>’_’)的话,则上面的自动定位规则变成: 当前模块/默认视图目录/当前控制器_当前操作.html 和 当前模块/默认视图目录/当前主题/当前控制器_当前操作.html。
注意:通常默认的视图目录是View。