ThinkPHP 模板引擎使用详解
ThinkPHP内置的模板引擎来定义模板文件,以及使用加载文件、模板布局和模板继承等高级功能。
每个模板文件在执行过程中都会生成一个编译后的缓存文件,其实就是一个可以运行的PHP文件。
引用自http://www.kancloud.cn/manual/thinkphp5/118122
PHP
/*index/controller/example.php*/ usethink\Controller; classtestextendsIndex{ publicfunctiontemplate(){ $name='Jerry'; $allName=[ 0=>"Jerry", 1=>"Tom" ]; $this->assign('nameA',$name); $this->assign('allName',$allName); return$this->fetch('example'); } }
HTML
/*index/view/example.html*/ {$nameA} {volistname="allName"id="vo"}{$vo} {/volist} Result
JerryJerry Tom
这样ThinkPHP便完成了对页面的解析工作,其中涉及到模板实例化、定位、赋值、渲染及标签的使用。
视图实例化
暂无
模板赋值
显然在在模板中直接使用$name是找不到该变量的。必须使用assign方法对模板赋值。在执行渲染输出函数前,assign方法使函数内部变量与模板变量建立起映射关系。
$this->assign('name',$name); $this->assign('allName',$allName);
通过赋值之后,便可以在模板文件中使用{$nameA}来输出该变量了。
模板渲染
当数据已经准备好渲染到页面上,还需要指定html文件作为渲染模板,为当前函数执行fetch方法时候传入example参数。
return$this->fetch('example');
模板标签
在模板文件中使用内置标签可以帮助我们在模板中循环、判断变量。它以一对花括号{tag}{/tag}作为开标签和闭标签。{与}之间必须紧跟标签属性或值,存在空格和换行都不能在渲染时被解析。
volist标签就是内置标签中的其中一个,通常用来循环某个数组变量。
{volistname="allName"id="vo"}{$vo} {/volist}
allName是通过模板赋值的变量,现在可以在模板上直接使用了,显然它是一个数组,volist标签对它做了循环操作。
volist标签常用的一些属性:
key
数组名
当前元素
value
allName
vo
隐藏在volist中的有几个内部变量{$key}{$i},分别代表了数组下标和循环次数。
内置标签
与volist一样好用的内置标签还有很多:
//判断数据是否不为空不为空则执行