Thinkphp6 模版分离和模版继承

Posted autofelix

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Thinkphp6 模版分离和模版继承相关的知识,希望对你有一定的参考价值。

〝 古人学问遗无力,少壮功夫老始成 〞

 在使用php框架开发时,我们经常遇到页面的头部和尾部等很多部分是公共的,我们其实可以将其进行分离出来,就不需要每个公共的部分都要渲染一次了。如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,表示支持,谢谢各位小伙伴们。

目录

一、模版分离

二、模版继承


一、模版分离

  • 在视图(view)目录下创建layout公共文件夹
  • 然后创建头部文件header.html或尾部footer.html等像这样的静态模板文件
  • 然后将主页面的头部代码和尾部代码分别分离到相应的文件里
// layout/header.html 文件

<head>
    <meta charset="utf-8" />
    <title>automovie</title>
    <meta name="referrer" content="no-referrer" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
    <link rel="stylesheet" href="__INDEX_STATIC__/css/bootstrap.css" type="text/css" />
  </head>
  • 引用方式如下
include file="layout/header" /

<!-- 跨模块引用模板的话 -->
include file="模块名@模板路径" /
include file="home@layout/header" /

二、模版继承

  • ThinkPHP6 模板继承是一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层
  • 定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载
include file='layout/header'
block name="title"<title>这是标题</title>/block

<div>
    block name="content"主内容/block
</div>

include file='layout/footer'
  • 从图中我们可以看到block变量
  • 然后我们在子模板(其实是当前操作的入口模板)中使用继承
  • 首先我们需要用 extend 指定继承的模版
extend name='public/base' /
block name='title'<title>这是一个小标题</title>/block
block name='content'
<h2 class="font-thin m-b">电影 
    <span class="bar1 a1 bg-primary lter"></span>
    <span class="bar2 a2 bg-info lt"></span>
    <span class="bar3 a3 bg-success"></span>
    <span class="bar4 a4 bg-warning dk"></span>
    <span class="bar5 a5 bg-danger dker"></span>
  </span>
</h2>
/block

以上是关于Thinkphp6 模版分离和模版继承的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp模版异常

非类型模版参数模版的特化分离编译

非类型模版参数模版的特化分离编译

flask模版继承和block

Django框架模版继承与组件使用

django中的模版继承