|
本帖最后由 周大胖子 于 2018-8-19 14:30 编辑
什么是模板布局?
【概念:模板布局,就是公共文件的引入,不过在TP5中是这么玩的,不引入公共文件,反引入内容文件到相应的布局模板内】
第一种,原有模板在视图中引入的操作 include
view/mv6.html 代码- {include file='base/head' /}
- <div style="background-color:#678;padding:16px;">
- 哈哈哈这是内容
- </div>
- {include file='base/foot' /}
复制代码 view/base/head.html 代码- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="utf-8">
- <title>12342</title>
- </head>
- <body>
- <h3 style="background-color:#eee;line-height:3;">这是 头部内容 </h3>
复制代码
第二种全局配置 注意了 我测试自己的时候有一个BUG 苦寻两天无果 但是 我新建一个文件却可以 ! 所以讲的没错 错的是我
'template'=>[
'layout_on' =>true, //开启模板布局
'layout_name' => 'layout', //设置布局模板文件名称
'layout_item'=>'{__REPLACE__}' // 设置布局模板中的替换字符 默认是{__COMTENT__}
]
2.1 在 config 文件中写入 上述配置 ,2.2 写一个layout.html 文件 view/layout
2.3 主体更换的内容 使用 {__CONTENT__} 在模板布局文件中 代替
这里还有一个参数 视频没教 说的 是 不引用 该布局 的 单独页面
用的时候参考https://blog.csdn.net/hxh5801050/article/details/78569150
第三种:直接在模板中配置 【搞不明白 这样也行 说明我那个文件其实没问题 是配置没生效】
1.必须关闭模板布局全局配置,防止布局循环
2.在view 下创建自定义布局文件
3.在模板中使用
{layout name="Layout/newlayout" replace="[__REPLACE__]"/} 导入布局文件内容
实例- {layout name="layout" /}
- <div style="background-color:#678;padding:16px;">
- 哈哈哈这是内容
- </div>
复制代码
四,控制器中动态配置 【真TM见鬼了 这个又错了 是怎么了 见鬼了嘛 憋死我了 憋死我了】
以下方法前提 继承了 基类Controller
$this->view->engine->layout('参数') ; // 调用视图对象、 调用模板引擎对象、调用layout 方法
参数详解:
如果为true: 采用默认布局模板:layout+html ;
如果为false: 临时关闭当前模板布局功能 ;
如果为文件名:用户自定义布局模板名称;- namespace app\articles\controller;
- class Vcm extends \think\Controller
- {
-
- public function mv6()
- {
- $this->view->engine->layout('layout'); //layout(true) 不加引号
- return $this-fetch();
- }
- }
复制代码
|
|