模板继承
准备:
如果开启了全局模板布局,先将其关闭
在view下创建public目录,来存放一些基本模板:base.html(必须的)、header.html(网站顶部)、footer.html(网站底部)。后两个可以没有,但是网站一般都有这两个部分(可以以其他名字命名)
Demo8.php
[PHP] 纯文本查看 复制代码 <?php
namespace app\index\controller;
use think\Controller;
class Demo8 extends Controller
{
public function test2()
{
return $this->view->fetch('test2');
}
}
header.html 和 footer.html此处不举例
base.html
[PHP] 纯文本查看 复制代码 {include file="public/header" /}
{block name="nov"} 导航 {/block}
[backcolor=yellow]{block name="main"} 主题部分 {/block} [/backcolor]
{include file="public/footer" /}
test2.html
<! -- 继承基础模板 -->
[PHP] 纯文本查看 复制代码 {extend name="public/base"}
<!--声明区块-->
{block name="main"}
<h2>我是继承案例的内容</h2>
{/block}
注:
每个区块由{block} {/block}标签组成,block标签含有一个name属性,用来区别不同的区块
子模板中(test2.html)需要继承继承模板(base.html),使用extend标签,name属性指定模板的位置,这里根路径为view目录
区块的作用可以说就是来占位置的,如果基础模板中的区块没有被声明,则会显示区块中的文字。如果目前不需要只需要占位,可以只声明区块,不添加内容,例如
{block name="nov"}父区块内容{/block}
如果在子模板中想继承父模板中区块的内容可以使用 {block} 标签
继承与类的继承很相似。可以理解为父模板中存在某个区块,子模板中不存在该区块,那就显示父模板中的区块;父模板和子模板中都存在相同区块,那就子模板区块代替父模板区块,显示子模板区块,调用父区块内容可用{__BLOCK__} 。
以上就是本文的全部内容,感谢大家支持JScript之家——编程学习者社区!
|