(一)在html文件中引用模板:首先需要定义一个布局模板文件,放到
application/index/view/layout.html 内容如下: {include
file="user/header" /} {__CONTENT__} {include
file="user/footer" /} application/index/view/user/index.html
改成: {layout
name="layout" /} 在index模板文件中开头定义layout 标签 ,表示当前模板使用了布局,布局模板文件为layout.html , 布局模板中的 {__CONTENT__} 会自动替换为解析后的index.html内容。 如果你的布局模板中不是使用{__CONTENT__} 的话,可以改成: {layout
name="layout/newlayout" replace="[__REPLACE__]" /} 那么回自动读取模板文件 application/index/view/layout/newlayout.html
,内容如下: {include
file="user/header" /} [__REPLACE__] {include
file="user/footer" /} (二)在CONFIG文件中设置统一模板。如果你所有的模板文件都统一使用布局,并且都是有同一个布局模板,那么可以统一配置而不需要在模板文件中使用layout 标签定义。 在应用配置或者模块配置中添加如下设置参数: 'template'
=> [ 'layout_on'
=> true, 'layout_name'
=> 'layout', 'layout_item'
=> '[__REPLACE__]'] 可以使用该方法临时关闭布局,$this->view->engine->layout(false); 或者直接在模板文件的开头加上{__NOLAYOUT__} 标签: (三)如果想动态控制模板文件使用布局,则可以在控制器中使用: $this->view->engine->layout('layout','[__REPLACE__]'); return
$this->fetch(); 注意:这里调用的是this->view->engine 对象的layout 方法,并不是所有的模板引擎都支持布局 功能,如果你使用的是其它的模板引擎,可能不提供layout 方法。
|