ThinkPHP之模板布局
ThinkPHP的模板引擎内置了布局模板功能支持,可以方便的实现模板布局以及布局嵌套功能。
有三种布局模板的支持方式
第一种方式:全局配置方式
这种方式仅需在项目配置文件中添加相关的布局模板配置,就可以简单实现模板布局功能,比较适用于全站使用相同布局的情况,需要配置开启LAYOUT_ON 参数(默认不开启),并且设置布局入口文件名。
例:
LAYOUT_NAME(默认为layout)。
‘LAYOUT_ON’=>true,
‘LAYOUT_NAME’=>‘layout’,
每个模块缺省访问所在模块的View目录下的模板文件。下面是一个典型的layout.html模板的写法。
例:
<!doctype html>
如果需要指定其他位置的布局模板,可以使用:
‘LAYOUT_NAME’=>‘Layout/layoutname’,
如果某些页面不需要使用布局模板功能,可以在模板文件开头加上 {NOLAYOUT} 字符串。
动态切换,在控制里修改LAYOUT_NAME。如果需要整个模块都用某切换到统一的模板,可以用继承,在基础类初始化时修改LAYOUT_NAME。
例:
C(‘LAYOUT_NAME’, ‘dashboard’);
第二种方式:模板标签方式
这种布局模板不需要在配置文件中设置任何参数,也不需要开启LAYOUT_ON,直接在模板文件中指定布局模板即可。(记得首先关闭前面的LAYOUT_ON设置,否则可能出现布局循环):
表示当前模板文件需要使用 layout.html 布局模板文件,而布局模板文件的写法和上面第一种方式是一样的。
如果需要使用其他的布局模板,可以改变layout的name属性,例如:
还可以在layout标签里面指定要替换的特定字符串:
由于所有include标签引入的文件都支持layout标签,所以,我们可以借助layout标签和include标签相结
合的方式实现布局模板的嵌套。例如,上面的例子
第三种方式:使用layout控制模板布局
就是在控制器里操作Layout功能,详见开发手册。