ThinkPHP通过视图继承和布局功能实现页面结构统一,减少重复代码。1. 使用<extend>和<block>标签可实现模板继承,子模板重写父模板内容块;2. 借助topthink/think-layout扩展可快速实现布局功能,通过View::layout()指定公共布局文件;3. 控制器中直接返回view()即可自动解析继承关系,生成完整页面。

ThinkPHP 的视图继承和布局功能可以帮助开发者统一页面结构,减少重复代码,特别适合构建具有相同头部、尾部或侧边栏的后台管理系统或网站前台。下面介绍如何在 ThinkPHP(以 ThinkPHP 6 为例)中使用这两个功能。
ThinkPHP 本身不内置“布局”功能,但可以通过 extend 模板引擎的标签来实现类似效果,或者使用第三方扩展。不过更推荐的方式是使用原生的模板继承机制来模拟布局。
如果你希望快速使用布局功能,可以借助
topthink/think-layout
composer require topthink/think-layout
use think\facade\View;
View::layout('layout');view/layout.html
立即学习“PHP免费学习笔记(深入)”;
<!DOCTYPE html>
<html>
<head>
<title><block name="title">默认标题</block></title>
</head>
<body>
<header>公共头部</header>
<pre class='brush:php;toolbar:false;'><block name="content">
<p>默认内容</p>
</block>
<footer>公共底部</footer>zuojiankuohaophpcn/body> </html>
然后在具体页面模板中:
<extend name="layout" />
<block name="title">用户列表</block>
<block name="content">
<h1>这是用户列表页</h1>
<!-- 具体内容 -->
</block>
ThinkPHP 使用的是 Think Template 引擎,支持通过
<block>
<extend>
基本语法说明:
<block name="xxx"></block>
<extend name="父模板名"/>
示例:
创建基础模板
view/base.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><block name="title">首页</block> - 我的网站</title>
</head>
<body class="page-<block name="page-class">home</block>">
<header>
<h1>我的网站</h1>
<nav>导航菜单</nav>
</header>
<pre class='brush:php;toolbar:false;'><main>
<block name="main">
<p>这里是默认主体内容。</p>
</block>
</main>
<footer>
<block name="footer">
© 2025 版权信息
</block>
</footer></body> </html>
创建子页面
view/user/index.html
<extend name="base" /> <p><block name="title">用户管理</block></p><p><block name="page-class">user-list</block></p><p><block name="main"> <h2>用户列表</h2> <ul> <li>张三</li> <li>李四</li> </ul> </block></p>
渲染后会自动合并结构,生成完整 HTML 页面。
<include file="..." />
在控制器中直接返回视图即可:
class UserController extends Controller
{
public function index()
{
return view('user/index');
}
}
框架会自动查找
view/user/index.html
基本上就这些。通过合理使用视图继承,你可以轻松实现一致的页面风格,同时保持模板的灵活性和可维护性。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号