Home >Backend Development >PHP Tutorial > thinkPHP 引来header模板,模板内的标签不解析
thinkPHP 引入header模板,模板内的标签不解析
大家好:
刚开始使用TP,遇到一个问题,问题大概是这样的:
网站分为头部、内容部分、底部。
头部主要是一个导航菜单,模板文件我写为了header.html
当首页index文件引入header.html的时候 header里面动态的内容并没有显示出来。
使用localhost/index.php/Common/header (我在commonAction.class.php 定义了header 方法)是可以显示出来的。说明index引入的只是静态的html文件,并没有解析?怎么解决,谢谢大家!
------解决方案--------------------
比方说你养加载首页 index.php,那么 肯定是加载对应的index。html模板, 如果已经确定了 这种情况下 是可以载入静态的header的话, 那么 看看你在index。php 里面的index()方法里面是否有没有对header里面的数据 assign(),
------解决方案--------------------
不用的~,你定义个父类,里面写一些公用的方法 这个类继承action , 里面包括重写tp的 display()方法, 然后在这个方法里面调用header类 就可以了 其他的控制器里面的方法 只要用这个display() 自动就载入了 header~ 明白吗
------解决方案--------------------
是不是有语法错误。逐一排查
<br /> 可以使用Include标签来包含外部的模板文件,使用方法如下: <br /> <br /> include标签(包含外部模板文件)<br /> <br /> 闭合<br /> 闭合标签<br /> <br /> 属性<br /> file(必须):要包含的模板文件,支持变量<br /> <br /> <br /> 示例:<br /> <br /> 1、 使用完整文件名包含<br /> <br /> 格式:<include file="完整模板文件名" /><br /> <br /> 例如:<br /> <br /> <include file="./Tpl/default/Public/header.html" /><br /> <br /> 这种情况下,模板文件名必须包含后缀。使用完整文件名包含的时候,特别要注意文件包含指的是服务器端包含,而不是包含一个URL地址,也就是说file参数的写法是服务器端的路径,如果使用相对路径的话,是基于项目的入口文件位置。<br /> <br /> <br /> <br /> 2、包含当前模块的其他操作模板文件<br /> <br /> 格式:<include file="操作名" /><br /> <br /> 例如 导入当前模块下面的read操作模版:<br /> <br /> <include file="read" /><br /> <br /> 操作模板无需带后缀。<br /> <br /> <br /> <br /> 3、 包含其他模块的操作模板<br /> <br /> 格式:<include file="模块名:操作名" /><br /> <br /> 例如,包含Public模块的header操作模版:<br /> <br /> <include file="Public:header" /><br /> <br /> <br /> <br /> 4、包含其他模板主题的模块操作模板<br /> <br /> 格式:<include file="主题名:模块名:操作名" /><br /> <br /> 例如,包含blue主题的User模块的read操作模版:<br /> <br /> <include file="blue:User:read" /><br /> <br /> <br /> <br /> 5、 用变量控制要导入的模版<br /> <br /> 格式:<include file="$变量名" /><br /> <br /> 例如 <br /> <br /> <include file="$tplName" /><br /> <br /> 给$tplName赋不同的值就可以包含不同的模板文件,变量的值的用法和上面的用法相同。<br /> <br /> <br /> <br /> 无论你使用什么方式包含外部模板,Include标签支持在包含文件的同时传入参数,例如,下面的例子我们在包含header模板的时候传入了title和keywords变量:<br /> <br /> <include file="header" title="ThinkPHP框架"keywords="开源WEB开发框架"/><br /> <br /> 就可以在包含的header.html文件里面使用var1和var2变量,方法<br /> <br /> <html xmlns="http://www.w3.org/1999/xhtml"><br /> <br /> <head><br /> <br /> <title>[title]</title><br /> <br /> <meta name="keywords" content="[keywords]" /><br /> <br /> </head><br /> <br /> <br /> <br /> 注意:由于模板解析的特点,从入口模板开始解析,如果外部模板有所更改,模板引擎并不会重新编译模板,除非在调试模式下或者缓存已经过期。如果部署模式下修改了包含的外部模板文件后,需要把模块的缓存目录清空,否则无法生效。<br /> <br /> <br /> <br /> <br /> <br />