官方手册:https://www.kancloud.cn/manual/think-template/#/catalog
安装命令
代码语言:javascript复制composer require topthink/think-template
变量输出
代码语言:javascript复制# 普通变量
{$it}
# 数组变量
{$it.name}
{$it['name']}
# 对象属性
{$it->name}
# 对象常量
{$it::CONST}
# 对象方法
{$it->fun()}
# 添加默认值
{$it | default='that'}
过滤器
代码语言:javascript复制# 格式
{$it | func}
常见过滤器:
过滤器 | 描述 | 使用格式 |
---|---|---|
date | 日期格式化 | date='Y-m-d H:i' |
format | 字符串格式化 | format='d' |
upper | 大写输出 | upper |
lower | 小写输出 | lower |
first | 输出数组第一个元素 | first |
last | 输出数组最后一个元素 | last |
default | 默认值 | default |
raw | 不使用默认转义 | raw |
md5 | 输出md5值 | md5 |
substr | 字符截取 | substr=start,end |
运算符
PHP中所有运算符均可使用:
运算符 | 使用示例 |
---|---|
| {$a $b} |
- | {$a-$b} |
* | {$a*$b} |
/ | {$a/$b} |
% | {$a%$b} |
| {$a } 或 { $a} |
-- | {$a--} 或 {--$a} |
比较运算符 | $a!==$b,$a>=$b等 |
三元运算符 | {$status? 'yes' : 'no'} |
模板继承
继承模板:
代码语言:javascript复制# html/base为view下的html/base.html文件
{extend name="htmls/base"}
区块覆写:
代码语言:javascript复制{block name="blockname"}{/block}
内置标签
循环:
代码语言:javascript复制# 形式一
{foreach $list as $key=>$value }
{$key}:{$value}
{/foreach}
# 形式二
{foreach $list as $value }
{$value}
{/foreach}
# for标签
{for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" }
{/for}
比较:
代码语言:javascript复制# 符合条件则输出内容
{比较标签 name="变量" value="值"}
符合
{else/}
不符合
{/比较标签}
比较标签 | 含义 |
---|---|
eq或者 equal | 等于 |
neq 或者notequal | 不等于 |
gt | 大于 |
egt | 大于等于 |
lt | 小于 |
elt | 小于等于 |
heq | 等于 |
nheq | 不等于 |
条件判断:
switch标签
代码语言:javascript复制# switch标签
{switch 变量 }
{case value1 }输出内容1{/case}
{case value2}输出内容2{/case}
{default /}默认情况
{/switch}
if标签
代码语言:javascript复制# if标签
{if 表达式}
value1
{elseif 表达式 /}
value2
{else /}
value3
{/if}
in标签
代码语言:javascript复制# in标签,判断变量是否在范围内
{in name="id" value="1,2,3"}
id在范围内
{/in}
# notin标签,判断变量是否不在范围内
{notin name="id" value="1,2,3"}
id不在范围内
{/notin}
# 使用else合并
{in name="id" value="1,2,3"}
id在范围内
{else/}
id不在范围内
{/in}
between标签
代码语言:javascript复制# between标签,判断变量是否在某个区间内
{between name="id" value="1,10"}
输出内容1
{/between}
# notbetween标签,判断变量是否不在某个区间内
{notbetween name="id" value="1,10"}
输出内容2
{/notbetween}
# 使用else合并
{between name="id" value="1,10"}
输出内容1
{else/}
输出内容2
{/between}
present标签
代码语言:javascript复制# present标签,用于判断某个变量是否已经定义
{present name="name"}
name已经赋值
{/present}
# notpresent标签,用于判断某个变量是否没定义
{notpresent name="name"}
name还没有赋值
{/notpresent}
# 用else合并
{present name="name"}
name已经赋值
{else /}
name还没有赋值
{/present}
empty标签
代码语言:javascript复制# empty标签,用于判断某个变量是否为空
{empty name="name"}
name为空值
{/empty}
# notempty标签,用于判断某个变量是否不为空
{notempty name="name"}
name不为空
{/notempty}
# 用else合并
{empty name="name"}
name为空
{else /}
name不为空
{/empty}
defined标签
代码语言:javascript复制# defined标签,用于判断某个常量是否有定义
{defined name="NAME"}
NAME常量已经定义
{/defined}
# notdefined标签,用于判断某个常量是否有定义
{notdefined name="NAME"}
NAME常量未定义
{/notdefined}
# 用else合并
{defined name="NAME"}
NAME常量已经定义
{else /}
NAME常量未定义
{/defined}
资源文件:
代码语言:javascript复制# 导入静态文件
{load href="/static/js/common.js" /}
{load href="/static/css/style.css" /}
# 导入js
{js href="/static/js/common.js" /}
# 导入css
{css href="/static/css/style.css" /}
其它
注释:
代码语言:javascript复制{/* 注释内容 */ }
{// 注释内容 }
{/* 注释
内容*/ }