同一个模块下的common继承问题,这里于index模块为例
在index模块下有自己的common和模块主视图文件夹index,那么我index0里面继承了自己的base.html是这样的
//base.html文件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> {block name="title"} 雷小天thinkPHP开发版 {/block} </title> <link rel="stylesheet" type="text/css" href="__CSS__/style.css"> <link rel="stylesheet" type="text/css" href="__LAYUI__/css/layui.css"> <script type="text/javascript" src="__LAYUI__/layui.js"></script> </head> <body> <div class="wrap"> <!-- 头部 --> <div class="header"> {include file="common/nav" /} </div> <!-- 中部 --> <div class="main"> <!-- 边栏 --> <div class="body"> {block name="body"} {/block} </div> <!-- 内容 --> <div class="sidebar"> {block name="sidebar"} {/block} </div> </div> <!-- 尾部 --> <div class="footer"> {block name="footer"} 默认值footer {/block} </div> </div> </body> </html>
下面是index0.html
{extend name="common/base" /} {block name="title"} thinkPHP5 index页 {/block} {block name="body"} <h1>这里是index body</h1> {/block} {block name="sidebar"} <h1>这里是index sidebar</h1> {/block} {block name="footer"} index_22{__block__} {/block}
我在index0.html文件中有重新定义title,所有最后的title是thimkPHP5 index页,但值得注意的是我footer内容是index_22{__block__},而{__block__}指的是在模板base.html中同位置的默认值footer,所有最后footer的内容是index_22默认值footer。
以上是同模块下的继承,还有一种是继承common模块的继承,这里于idnex模块下的view/index.html继承common模块下view下的base.html文件为例
不同的模块继承方式也不同了,这里继承common模块下的继承方式为:{extend name="common@base" /},而在同模块下的继承是:
{extend name="common/base" /}。而有些需求在base.html文件中还需要继承其他的模板,那么在base.html中可以这样继承: {include file="common@header" /}这个意思就是继承common下的view/header.html文件