ThinkPHP开发指南-视图-布局模板
查看全部词条命名空间:Main
导航:返回上一页
新版的ThinkPHP可以自动识别模板文件中的布局模板,不再需要专门使用layout方法进行布局模板的输出了。布局模板本身的用法和普通的模板一样,只是增加了一个布局标签的用法,并且布局模板可以用于任何模板引擎,都可以很好的支持。
我们可以在布局模板里面使用下面的格式定义布局:这里的模板文件规则和display的参数用法是一致的,详细的可以参考模板输出部分的内容。
例如:
如果使用的是内置的模板引擎的话,还可以使用下面的布局标签来定义,效果一致:
PHP代码
三个布局定义(标签)分别导入了三个模板文件,由于Include标签导入的外部文件无法检测模板更新,而布局模板恰好可以很好的解决这个问题。假设上面的布局模板文件名称为default.html 位于Index目录下面,那么我们就可以在Action里面调用输出:
PHP代码
$this->display('Index:default');
通常来说,我们可以不用重复定义很多的布局模板,使用动态布局模板来简化布局模板的定义。例如,我们把上面的布局模板修改为:
或者采用内置模板引擎的layout标签定义:
PHP代码
这样所有的模板都会调用Public/header.html头部和Public/footer.html尾部,而中间的内容是通过变量动态控制输出调用的模板。
PHP代码
$this->assign('content', 'User:list');$this->display('Index:default');
布局模板只是为了方便视图的定义,布局模板本身并不调用模板对应的操作方法,也就是说布局模板中的变量赋值仍然需要在控制器中进行。