当前位置: 首页 > news >正文

ThinkPHP 6.1 模板篇之循环和选择标签

本文主要介绍在视图模板中,如何使用循环和选择标签去渲染变量及常用循环和选择标签。

目录

循环标签

foreach 标签

for 标签

volist 标签

选择标签

switch 标签

if 标签

范围标签

原生标签

总结


循环标签

foreach 标签

将查找到的数组或数据集,使用{foreach}...{/foreach}函数渲染

<table border="1"><tr><th>ID</th><th>姓名</th><th>性别</th><th>爱好</th></tr>{foreach $arr as $k => $v}<tr><td>{$v.id}</td><td>{$v.name}</td><td>{$v.gender}</td><td>{$v.hobby}</td></tr>{/foreach}
</table>

注意:循环的变量名称要与传参名称一致。

for 标签

与php原生代码使用有所不同,通过起始和终止值,结合步长实现的循环。

简单例子:1-100

{for start="1" end="100" step="1"}{$i}
{/for}

渲染数据,默认是i,可通过name修改

{for start="0" end="count($arr)" step="1" name="i"}<tr><td>{$arr[$i]['id']}</td><td>{$arr[$i]['name']}</td><td>{$arr[$i]['gender']}</td><td>{$arr[$i]['hobby']}</td></tr>
{/for}

volist 标签

volist 也是将查询得到的数据集通过循环的方式进行输出

name 属性表示数据总集,id 属性表示当前循环的数据单条集。

{volist name="arr" id="val"}<tr><td>{$val.id}</td><td>{$val.name}</td><td>{$val.gender}</td><td>{$val.hobby}</td></tr>
{/volist}

使用 offset 属性和 length 属性从第2条开始显示2条,默认下标从0开始;

{volist name="arr" id="val" offset='1' length='2'}<tr><td>{$val.id}</td><td>{$val.name}</td><td>{$val.gender}</td><td>{$val.hobby}</td></tr>
{/volist}

当没有任何数据的时候,使用 empty 属性实现输出指定的提示;

{volist name="arr" id="val" offset='10' length='2' empty="没有数据"}<tr><td>{$val.id}</td><td>{$val.name}</td><td>{$val.gender}</td><td>{$val.hobby}</td></tr>
{/volist}

默认key从0开始计算;可使用 key='k',让索引从 1 开始计算;

{volist name="arr" id="val"}<tr><td>{$key}/{$val.id}</td><td>{$val.name}</td><td>{$val.gender}</td><td>{$val.hobby}</td></tr>
{/volist}{volist name="arr" key="k" id="val"}<tr><td>{$k}/{$val.id}</td><td>{$val.name}</td><td>{$val.gender}</td><td>{$val.hobby}</td></tr>
{/volist}

选择标签

switch 标签

多条件判断可以使用switch

{switch info.gender}{case 男}帅哥{/case}{case 女}美女{/case}{default/}不存在
{/switch}

判断条件不需加引号,解析时候会加上。

<?php switch($info['gender']): case "男": ?>帅哥<?php break; case "女": ?>美女<?php break; default: ?>不存在
<?php endswitch; ?>

也可以单个case判断多条件

{switch info.week}{case 1|2|3|4|5}周一到周五:工作日{/case}{case 0|6}周末:休息日{/case}{default/}不存在
{/switch}

if 标签

简单判断

{if $info.age > 17}大于 17{/if}
{if $info.age >= 18}大于等于 18{/if}

and/or

{if ($info.age > 18) or ($info.age > 16)}大于18 或 大于16
{/if}
{if ($info.age > 18) and ($info.age = 19)}大于18等于19
{/if}

并支持使用elseif/else,进行多条件判断

{if $info.age > 18}大于18
{elseif $info.age < 18}小于18
{else}等于18
{/if}

范围标签

in判断值是否存在或不存在指定的数据列表中。

{in name='info.age' value='10,20,30,40,50'}存在{/in}
{in name='info.age' value='10,20,30,40,50'}存在数据列表中
{else/}不存在数据列表中
{/in}

between判断值是否存在或不存在数据区间中。

{between name='info.age' value='10,50'}存在{/between}
{between name='info.age' value='10,50'}存在数据区间中
{else/}不存在数据区间中
{/between}

between 中的 value 只能是两个值,表示一个区间,第三个值会无效;

区间不但可以表达数字,也可以是字母,比如 a-z,A-Z。

原生标签

有时,如果忘记在模版中怎么进行编码时,可以采用{php}标签进行原生编码;

{php}for($i=0;$i<count($arr);$i++) {echo $arr[$i]['id'];echo $arr[$i]['name'];echo $arr[$i]['gender'];echo $arr[$i]['hobby'];}
{/php}

注意:原生编码就是 PHP 编码,不能再使用模版引擎的特殊编码方式。

总结

本文中列举了常用的循环和选择标签属性及使用方式,如果实在记不住如何使用或者觉得繁琐也可以使用php原生编码实现。

http://www.lryc.cn/news/35469.html

相关文章:

  • Jetpack太香了,让开发效率提升了不少
  • 【软考中级信安】第四章--网络安全体系与网络安全模型
  • 四、GC分析内存调优
  • 如何快速开发一套分布式IM系统
  • W806|CKLINK LITE|调试|elf文件模板|CSDK|Debug|学习(4):CKLINK调试W806
  • 【100个 Unity实用技能】 ☀️ | 脚本无需挂载到游戏对象上也可执行的方法
  • 「IT女神勋章」挑战赛#
  • 易优cms user 登录注册标签
  • 源码安装Redis 7.0.9并且systemctl管理
  • 编写程序:有92号和95号汽油可以选择,选择你需要的汽油,并输入需要加油的升数,点击按钮“`计算总价钱`“在div中可以得到你所需要支付的价格
  • 参考文献去哪里查找,参考文献标准格式是什么
  • WIFI标签操作步骤
  • 【Hello Linux】命令行解释器
  • 开源一个通用的 HTTP 请求前端组件
  • 等保测评机构资质申请条件是什么?个人可以申请吗?
  • android 卡顿、ANR优化(1)屏幕刷新机制
  • Landsat8中*_MTL.txt文件详解
  • 好的提高代码质量的方法有哪些?有什么经验和技巧?
  • yum保留安装包
  • ERP系统哪家比较好?
  • Python读写mdb文件的实战代码
  • MAC和IP地址在字符串形式、数字形式和byte数组中的转换
  • 时间轮来优化定时器
  • 《和AI交朋友》教学设计——初识人工智能
  • 机载雷达的时间简史
  • 2018年MathorCup数学建模A题矿相特征迁移规律研究解题全过程文档及程序
  • 如何在 Python 中创建对象列表
  • Canny算法原理和应用
  • 数据挖掘(2.2)--数据预处理
  • JVM堆与堆调优以及出现OOM如何排查