老莫的笔记本  
  
请选择 进入手机版 | 继续访问电脑版
查看: 1125|回复: 0

TP5 模板布局

[复制链接]

662

主题

878

帖子

5113

积分

超级版主

Rank: 8Rank: 8

积分
5113
发表于 2018-8-19 12:28:44 | 显示全部楼层 |阅读模式
本帖最后由 周大胖子 于 2018-8-19 14:30 编辑

什么是模板布局?
【概念:模板布局,就是公共文件的引入,不过在TP5中是这么玩的,不引入公共文件,反引入内容文件到相应的布局模板内】

第一种,原有模板在视图中引入的操作  include
view/mv6.html 代码
  1.     {include file='base/head' /}
  2.     <div style="background-color:#678;padding:16px;">
  3.         哈哈哈这是内容
  4.     </div>
  5.     {include file='base/foot' /}
复制代码
view/base/head.html 代码
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4.     <meta charset="utf-8">
  5.     <title>12342</title>
  6. </head>
  7. <body>
  8.     <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__]"/}   导入布局文件内容
实例
  1. {layout name="layout" /}
  2. <div style="background-color:#678;padding:16px;">
  3.     哈哈哈这是内容
  4. </div>
复制代码


四,控制器中动态配置      【真TM见鬼了  这个又错了 是怎么了 见鬼了嘛  憋死我了 憋死我了】
以下方法前提 继承了 基类Controller
$this->view->engine->layout('参数') ;   //  调用视图对象、 调用模板引擎对象、调用layout 方法
参数详解:
    如果为true: 采用默认布局模板:layout+html ;
    如果为false: 临时关闭当前模板布局功能 ;
    如果为文件名:用户自定义布局模板名称;
  1. namespace app\articles\controller;
  2. class Vcm extends \think\Controller
  3. {
  4.    
  5.     public function mv6()
  6.     {
  7.         $this->view->engine->layout('layout');     //layout(true) 不加引号
  8.         return $this-fetch();
  9.     }
  10. }
复制代码






回复

使用道具 举报

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

本版积分规则

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