开启辅助访问
帐号登录 |立即注册

thinkphp的模板布局extend和{block}

 
模板继承
准备:
如果开启了全局模板布局,先将其关闭
在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之家——编程学习者社区!




回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。