输出变量:
{$name}
输出数组:
{$user.user_name}
{$user.age}
或
{$user['user_name']}
{$user['age']}
如果是多维数组,采用后面的方式
输出对象:
{$user->user_name}
{$user->age}
系统变量输出:
{$Request.server.script_name} // 输出$_SERVER['SCRIPT_NAME']变量
{$Request.session.user_id} // 输出$_SESSION['user_id']变量
{$Request.get.page} // 输出$_GET['page']变量
{$Request.cookie.name} // 输出$_COOKIE['name']变量
系统变量通常以{$Request.打头
// 调用Request对象的controller方法
{$Request.controller}
// 调用Request对象的action方法
{$Request.action}
// 调用Request对象的host方法
{$Request.host}
// 调用Request对象的ip方法
{$Request.ip}
常量输出:
//输出PHP的版本
{$Think.PHP_VERSION}
//输出THINKPHP的版本
{:think\\App::VERSION}
模板中使用函数
{$data.name|md5}
编译后结果是:
<?php echo htmlentities(md5($data['name'])); ?>
htmlentities是系统默认添加的,避免XSS的攻击
你可以自己设定过滤方法,在配置文件中 template.php 中设置
'default_filter' => 'htmlspecialchars'
原样输出:
{$data.name|raw}
其他函数:
//转化为时间格式
{$data.create_time|date='Y-m-d H:i'}
{$data.number|format='%02d'}
//多个参数
{$data.name|substr=0,3}
//多个函数
{$name|md5|upper|substr=0,3}
复制代码
也可以这样写,更直观也推荐这种写法
{:substr(strtoupper(md5($name)),0,3)}
使用运算符
{$user.score+10} //正确的
{$user['score']+10} //正确的
{$user['score']*$user['level']} //正确的
{$user['score']+myFun($user['level'])} //正确的
//三元
{$status? '正常' : '错误'}
原样输出: literal 标签里面的内容不会被解析
{literal}
Hello,{$name}!
{/literal}
包含文件:
规则为:模块@控制器/操作
{include file="public/header" /} // 包含头部模版header
{include file="public/menu" /} // 包含菜单模版menu
{include file="blue/public/menu" /} // 包含blue主题下面的menu模版
{include file="public/header,public/menu" /} //包含多个文件
模板输出替换:
在view.php 的配置文件中添加
'tpl_replace_string' => [
'__STATIC__'=>'/static',
'__JS__' => '/static/javascript',
]
内置标签
循环标签
for循环,顾名思义,通过起始和终止值,结合步长实现的循环:
{for start="开始值" end="结束值" comparison="" step="布进值" name="循环变量名"}
....
{/for}
说明:开始值,结束值、步进值和循环变量都可以支持变量,开始值和结束值是必须,其他是可选,comparison的默认值是it,name的默认值是i,步进值的默认值是1。
或
{foreach $list as $key=>$vo }
{$vo.id}:{$vo.name}
{/foreach}
或
{volist name="list" id="vo"}
{$vo.id}:{$vo.name}<br/>
{/volist}
volist说明:
二维数组的结果输出
name 模板赋值的变量名称
id 当前的循环变量,可以随意起名
key 下标,从1开始,默认变量i
offset 开始行数
length 获取行数
empty 如果数据为空,显示此文字
条件判断:
{if ( $name == 1) OR ( $name > 100) }
value1
{elseif $name == 2 /}
value2
{else /}
value3
{/if}
或
{if strtoupper($user['name']) == 'THINKPHP' }
ThinkPHP
{else /}
other Framework
{/if}
或
{switch $week}
{case 1|2|3}...{/case}
{case 10}...{/case}
{case 'abc'}...{/case}
{/switch}
或
{eq name="name" value="Mr.chen"}
...
{else /}
...
{/eq}
标签,比较两个值是否相同,相同即输出包含内容。
属性name里是一个变量,$符号可加可不加;而value里是一个字符串,如果value也需要是一个变量的话,那么value需要加上$后的变量。
范围标签
{in name="number" value="10,20,30,40,50"}存在{else /}不存在{/in}
或
{between name="number" value="10,50"}存在区间中{else /}不存在区间中{/between}
或
{present name="user"}变量user存在{else /}变量user不存在{/present}
或
{empty name="username"}变量username有值{else /}变量username空值{/empty}
或
{defined name="PI"}常量PI存在{else /}常量PI不存在{/defined}
加载资源文件:
{load href="/static/js/common.js" /}
{load href="/static/css/style.css" /}
{load href="/static/js/common.js,/static/css/style.css" /}
原生标签:
{php}echo 'Hello,world!';{/php}
<?php echo 'Hello,world!'; ?>
上一篇:TP6实现多表查询合并数据输出总数或条数,主要用到函数UNION或UNION ALL
下一篇:TP6 生成Qrcode二维码和Barcode条形码的方法
讨论数量:0