TP6模板引擎

2023-07-30 17:41:06 浏览数 (2)

官方手册: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复制
{/* 注释内容 */ }

{// 注释内容 }

{/* 注释
内容*/ }

0 人点赞