1. 云栖社区>
  2. PHP教程>
  3. 正文

ThinkPHP 模板布局

作者:用户 来源:互联网 时间:2017-12-01 15:46:07

布局thinkphp模板

ThinkPHP 模板布局 - 摘要: 本文讲的是ThinkPHP 模板布局, 模块继承 {extend name="" /} {block name=""} {/block} 基础模板 base.html 子模板块区 在子模板中,可以对基础模板中的区块进行重载定义,如果没有重新定义的话,则表示沿用基础模板中的区块



模块继承
{extend name="" /}
{block name=""}
{/block}
基础模板 base.html
子模板块区
在子模板中,可以对基础模板中的区块进行重载定义,如果没有重新定义的话,则表示沿用基础模板中的区
块定义,
如果定义了一个空的区块,则表示删除基础模板中的该区块内容。
{__block__}引用模板内容到子模块
base.html
{block name="footer"}底部{/block}
{block name="footer"}
{__block__}[@ThinkPHP](https://my.oschina.net/u/1018563) 版权所有
{/block}
这一区块中有{_block_}这个标签,当区块中有这个标记时,就不只是直接重载这个区块,它表示引用所继承模
板对应区块的内容到这个位置,最终这个区块是合并后的内容。所以这里footer区块最后的内容是: 底部
[@ThinkPHP](https://my.oschina.net/u/1018563) 版权所有
在当前子模板中,只能定义区块而不能定义其他的模板内容,否则将会直接忽略,并且只能定义基础模板中
已经定义的区块。一 资源加载
{load href=""}
{js href=""}
{css href=""}二 使用原生php
{php} echo 'hello';{/php}
注意:php标签或者php代码里面就不能再使用标签(包括普通标签和XML标签)了,因此下面的几种方式都
是无效的:
{php}{eq name='name'value='value'}value{/eq}{/php}
简而言之,在PHP标签里面不能再使用PHP本身不支持的代码。
如果设置了tpl_deny_php 参数为true,就不能在模板中使用原生的PHP代码,但是仍然支持PHP标签输

三 定义标签
[@1](https://my.oschina.net/u/1198) assign标签在模板中定义变量
{assign name='var' value='123'/}
name属性支持系统变量,例如:
{assign name="Think.get.id" value="123" /}
表示在模板中给$_GET['id'] 赋值了 123
value属性也支持变量,例如:
{assign name="var" value="$val" /}
或者直接把系统变量赋值给var变量,例如:
{assign name="var" value="$Think.get.name" /}
相当于,执行了: $var = $_GET['name'];
@2 define定义常量
{define name="MY_DEFINE_NAME" value="3" /}
在运行模板的时候,就会定义一个MY_DEFINE_NAME 的常量。
value属性可以支持变量(包括系统变量),例如:
{define name="MY_DEFINE_NAME" value="$name" /}
或者
{define name="MY_DEFINE_NAME" value="$Think.get.name" /}
三 包含文件
[@1](https://my.oschina.net/u/1198) 当前模板文件包含其他的模板文件
{include file=""/}
包含的模板文件中不能再使用模板布局或者模板继承
@2 使用模版表达式
模版表达式的定义规则为:模块@控制器/操作
{include file="public/header" /} // 包含头部模版header
注意,包含模版文件并不会自动调用控制器的方法,也就是说包含的其他模版文件中的变量赋值需要在当
前操作中完成。
使用模版文件
可以直接包含一个模版文件名(包含完整路径),例如:
{include file="../application/view/default/public/header.html" /}
路径以 项目目录/public/ 路径下为起点
二 传入参数
{include file="Public/header" title="$title" keywords="开源WEB开发框架" /}

[title]

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索布局 , thinkphp 模板 ,以便于您获取更多的相关知识。