thinkphp5 模板布局有三种方式,分别为全局配置方式,模板标签方式,layout控制模板布局。
全局配置方式可以简单实现模板布局功能,比较适用于全站使用相同xuyao布局的情况。使用的时候需要配置layout_on参数为true。并且设置布局入口文件名layout_name(默认为layout)。
'template' => [
'layout_on' => true,
'layout_name' => 'layout',
]
第二种是模板标签方式。这种布局模板不需要在配置文件中设置任何参数,也不需要开启layout_on
,直接在模板文件中指定布局模板即可,相关的布局模板调整也在模板中进行。
以前面的输出模板为例,这种方式的入口还是在user/add.html 模板,但是我们可以修改下add模板文件的内容,在头部增加下面的布局标签(记得首先关闭前面的layout_on
设置,否则可能出现布局循环):
{layout name="layout" /}
表示当前模板文件需要使用layout.html
布局模板文件,当渲染模板文件的时候,如果读取到layout标签,则会把当前模板的解析内容替换到layout布局模板的{CONTENT} 特定字符串。
一个模板文件中只能使用一个布局模板,如果模板文件中没有使用任何layout标签则表示当前模板不使用任何布局。
如果需要使用其他的布局模板,可以改变layout的name属性,例如:
{layout name="newlayout" /}
还可以在layout标签里面指定要替换的特定字符串:
{layout name="Layout/newlayout" replace="[__REPLACE__]" /}
第三种方式:使用layout控制模板布局。使用内置的layout方法可以更灵活的在程序中控制模板输出的布局功能,尤其适用于局部需要布局或者关闭布局的情况,这种方式也不需要在配置文件中开启layout_on