ThinkPHP3.0完全开发手册                                           

 

8.7   包含文件

可以使用Include标签来包含外部的模板文件,使用方法如下:

include标签(包含外部模板文件)

闭合

闭合标签

属性

file(必须):要包含的模板文件,支持变量

示例:

1 使用完整文件名包含

格式:<include file="完整模板文件名/>

例如:

<include file="./Tpl/default/Public/header.html" />

这种情况下,模板文件名必须包含后缀。使用完整文件名包含的时候,特别要注意文件包含指的是服务器端包含,而不是包含一个URL地址,也就是说file参数的写法是服务器端的路径,如果使用相对路径的话,是基于项目的入口文件位置。

 

2、包含当前模块的其他操作模板文件

格式:<include file="操作名/>

例如 导入当前模块下面的read操作模版:

<include file="read" />

操作模板无需带后缀。

 

3 包含其他模块的操作模板

格式:<include file="模块名:操作名/>

例如,包含Public模块的header操作模版:

<include file="Public:header" />

 

4、包含其他模板主题的模块操作模板

格式:<include file="主题名:模块名:操作名/>

例如,包含blue主题的User模块的read操作模版:

<include file="blue:User:read" />

 

5 用变量控制要导入的模版

格式:<include file="$变量名/>

例如

<include file="$tplName" />

$tplName赋不同的值就可以包含不同的模板文件,变量的值的用法和上面的用法相同。

 

无论你使用什么方式包含外部模板,Include标签支持在包含文件的同时传入参数,例如,下面的例子我们在包含header模板的时候传入了titlekeywords变量:

<include file="header" title="ThinkPHP框架"keywords="开源WEB开发框架"/>

就可以在包含的header.html文件里面使用var1var2变量,方法

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>[title]</title>

<meta name="keywords" content="[keywords]" />

</head>

 

注意:由于模板解析的特点,从入口模板开始解析,如果外部模板有所更改,模板引擎并不会重新编译模板,除非在调试模式下或者缓存已经过期。如果部署模式下修改了包含的外部模板文件后,需要把模块的缓存目录清空,否则无法生效。


NetPc