Home  >  Article  >  Backend Development  >  thinkPHP 引来header模板,模板内的标签不解析

thinkPHP 引来header模板,模板内的标签不解析

WBOY
WBOYOriginal
2016-06-13 12:59:01980browse

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 />

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn