对于一些有共同属性的页面(如页脚),可以单独制作成一个模板,再利用 ThinkPHP 提供的模板包含功能包含进来。这样,当要修改这些公共页面时,只需修改对应的模板即可而不必修改每一个页面。
模板的包含使用 include 关键字,有如下所述 6 种方式。
包含当前模块的其他操作模板文件
格式:
<include file="操作名" />
例子:
<include file="read" />
包含其他模块的操作模板
格式:
<include file="模块名:操作名" />
例子:
<include file="Public:header" />
该例子包含Public模块的header操作模板。
提示
同模板输出一样,这种方式实际上并不检测对应的模块和操作是否存在,只需根据模板定义规则创建了该模板即可(即该模板实际存在即可)。
使用完整文件名包含
格式:
<include file="完整模板文件名" />
例子:
<include file="./Tpl/default/Public/header.html" />
这种方式,指的是服务器端包含(服务器端路径),而不是包含一个 URL 地址。如果使用相对路径的话,是基于项目入口文件位置而言。
注意:该种方式模板文件名必须包含后缀。
包含其他模板主题的模块操作模板
格式:
<include file="主题名@模块名:操作名" />
例子:
<include file="Xp@User:read" />
用变量控制要导入的模版
格式:
<include file="$变量名" />
例子:
<include file="$tplName" />
给 $tplName 赋不同的值就可以包含不同的模板文件。
使用快捷方式包含文件
格式:
{include:模板文件规则}
例子:
模板文件规则可以使用上面提到的5种方式。
注意
如果被包含的模板有所更改,模板引擎并不会重新编译模板,除非缓存已经过期。所以如果修改了包含的外部模板文件后,需要把模块的缓存目录(RuntimeCache)清空,否则无法生效。