ThinkPHP视图怎么引入公共头部_ThinkPHP模板include复用介绍【介绍】
ThinkPHP视图中用include标签引入公共头部,路径需基于view_path写相对路径,不可出现./或../。子模板默认无法访问父模板变量,需显式传参或使用assign属性。include模板内不支持{block}块,复杂布局应改用extend。修改后若未生效,需清空模板缓存。
ThinkPHP 视图中引入公共头部,最直接高效的方式就是使用 include 标签——不过呢,路径怎么写、变量怎么传、模板引擎的行为习惯,这些细节要是没摸透,很容易碰上报错或者渲染空白的情况。先说说核心的几个判断。
ThinkPHP 6 的 {include file="xxx"} 路径到底怎么写才正确
ThinkPHP 6 底层用的是 ThinkTemplate 引擎,include 的 file 参数不支持相对路径,比如 ./header.html 这种写法就别想了,也不推荐直接填完整路径。正确的做法,是基于 view_path 配置来写相对路径:
- 公共文件如果放在
app/view/common/header.html,那在任何模板里直接写{include file="common/header"}就行。 - 即使你在子目录里引用,比如
app/view/admin/index.html,写法仍然是{include file="common/header"},别自作主张加../。 - 后缀
.html可以省略,但加上更清晰;如果模板后缀配置成了.php,那自然得写成common/header.php。 - 路径里绝对不能出现
./或../,否则解析会直接失败,返回空内容,而且连个报错提示都不会给——这属于“静默失败”,最让人头疼的那种。
为什么 {include} 里用不到父模板的变量
这个问题非常典型。ThinkPHP 的 include 默认是“局部作用域”,被引入的子模板(比如 header)不能直接访问父模板传进来的数据。解决方案有三种,但各有优劣:
- 显式传参:
{include file="common/header" title="$title" user="$user"},子模板里就能直接用$title了。最推荐,清晰明了。 - 全量继承当前作用域:加上
assign="true"属性,{include file="common/header" assign="true"},但这么做容易造成变量污染,尤其是在多层嵌套include的场景下,调试起来非常痛苦。 - 更稳妥的方案:在控制器里统一用
View::assign()预设好公共变量,比如site_name、na v_list,然后在header.html里直接使用。这样变量来源清晰,维护起来也省心。
include 进来的模板里能用 {block} 吗
结论很明确:不能。ThinkPHP 的 {block} 和 {extend} 是布局继承机制的一部分,只在顶层模板(也就是被 fetch() 渲染的那个)里生效;include 本质上是纯内容拼接,不会触发继承解析。这就意味着:
- 如果在
common/header.html里写了{block name="title"}默认标题{/block},父模板里的{block name="title"}首页{/block}根本覆盖不了它。 - 想实现类似的效果,得改用
{extend name="layout/master"}+{block}的方式重构结构,把 header 放到 layout 模板里,而不是靠include。 - 混用
include和extend很容易把逻辑搞乱,建议二选一:简单复用用 include,复杂布局统一用 extend。
最后提醒一个容易被忽略的点:缓存行为。include 的文件修改之后,如果开启了模板缓存(默认是开启的),可能不会立即生效。这时候需要清空 runtime/view/ 目录,或者在调试阶段临时关闭 template.cache 配置——否则你会纳闷“明明改了,怎么就是没反应”。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















