一元网络论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3614|回复: 0

thinkphp,一、模板文件layou.html的使用设置详细说明和多种...

[复制链接]

3万

主题

3万

帖子

9万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
93367
发表于 2020-11-22 15:09:31 | 显示全部楼层 |阅读模式

(一)在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 方法。

 

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|一元网络论坛

GMT+8, 2024-11-21 18:14 , Processed in 0.070406 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表