1.模板包含
将公共部分提出来, 例如放在 view/common/nav.hml 中, 再需要的时候,通过下面的方式引用.
{include file="common/nav" /}
2.模板继承
先定义一个主模板, 例如放在, view/common/base.html 中,在其中 放入坑"block", 例如 title
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>
{block name="title"}
模板学习index页
{/block}
</title>
<link rel="stylesheet" href="__CSS__/style.css">
</head>
<body>
<div class="wrap">
<!--头部-->
<div class="header">
{include file="common/nav" /}
</div>
<!--中部-->
<div class="main">
<!--边栏-->
<div class="sidebar">
sidebar
</div>
<!--内容-->
<div class="body">
body
</div>
</div>
<!--尾部-->
<div class="footer">
footer
</div>
</div>
</body>
</html>
3.其他模块需要调用的时候, 通过以下方式调用
{extend name="common/base" /}
{block name="title"}
模板学习 page1 页
{/block}
先继承主页面, 然后 通过block, 来修改内容.
4. 开启layout, 在 conf下面新增 最后2行. 开启layout
'template' => [
// 模板引擎类型 支持 php think 支持扩展
'type' => 'Think',
// 视图基础目录,配置目录为所有模块的视图起始目录
'view_base' => '',
// 当前模板的视图目录 留空为自动获取
'view_path' => '',
// 模板后缀
'view_suffix' => 'html',
// 模板文件名分隔符
'view_depr' => DS,
// 模板引擎普通标签开始标记
'tpl_begin' => '{',
// 模板引擎普通标签结束标记
'tpl_end' => '}',
// 标签库标签开始标记
'taglib_begin' => '{',
// 标签库标签结束标记
'taglib_end' => '}',
'layout_on' => true,
'layout_name' => 'layout'
],
5. 此时, 我们控制器中的 fetch方法机制就会改变, 它第一时间找的是 view/layout.html 文件, 所以, 我们在view下新建一个layout.html. 然后挖一个坑, {__CONTENT__}, 这以后, 我们view下的文件, 则都是替换这个坑, 例如 view/index/index.html 则是先找到 view/layout.html 然后把这里的内容, 替换 {__CONTENT__}.