TP6常用模板变量和语句输出

ThinkPHP 2372 1 2022-11-06

TP6常用模板变量和语句输出

输出变量:

{$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

请先登录再发表讨论。 2024-04-28

天涯网魂
3 杠 5 星
TA 的文章
TA 的随言
TA 的资源链