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原生编码实现。
相关文章:
ThinkPHP 6.1 模板篇之循环和选择标签
本文主要介绍在视图模板中,如何使用循环和选择标签去渲染变量及常用循环和选择标签。 目录 循环标签 foreach 标签 for 标签 volist 标签 选择标签 switch 标签 if 标签 范围标签 原生标签 总结 循环标签 foreach 标签 将查找到的数组或数据集ÿ…...

Jetpack太香了,让开发效率提升了不少
作者:Jingle_zhang 第三方App使用Jetpack等开源框架非常流行,在Gradle文件简单指定即可。然而ROM内置的系统App在源码环境下进行开发,与第三方App脱节严重,采用开源框架的情况并不常见。但如果系统App也集成了Jetpack或第三方框架…...

【软考中级信安】第四章--网络安全体系与网络安全模型
1.网络安全体系概述1.1 网络安全体系概念网络安全体系:是网络安全保障系统的最高层概念抽象,是由各种网络安全单元按照一定的规则组成的,共同实现网络安全的目标。1.2 网络安全体系特性整体性:网络安全单元按照一定规则࿰…...
四、GC分析内存调优
文章目录(持续更新中... ...)GC分析&内存调优工具篇JDK自带的工具jconsolejvisualvm第三方工具arthas(重要)jprofiler(收费的)MAT、GChisto、gcviewer、GC Easy(待完善)参数、命…...

如何快速开发一套分布式IM系统
架构说明: 1)CIM 中的各个组件均采用 SpringBoot 构建;2)采用 Netty Google Protocol Buffer 构建底层通信;3)Redis 存放各个客户端的路由信息、账号信息、在线状态等;4)Zookeeper …...

W806|CKLINK LITE|调试|elf文件模板|CSDK|Debug|学习(4):CKLINK调试W806
一、硬件连接 接线方式 (连线颜色供参考,本例中采用图示颜色): 注意:CKLINK LITE的3V3须与W806的3V3相连,或者给W806开发板单独供电,两种方式均可。 否则,会提示“the referenc…...

【100个 Unity实用技能】 ☀️ | 脚本无需挂载到游戏对象上也可执行的方法
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案ÿ…...

「IT女神勋章」挑战赛#
缓存 本地缓存 本地缓存为了保证线程安全问题,一般使用ConcurrentMap的方式保存在内存之中 分布式缓存。 常见的分布式缓存则有Redis,MongoDB等。 一致性:本地缓存由于数据存储于内存之中,每个实例都有自己的副本,…...

易优cms user 登录注册标签
user 登录注册标签 user 登录注册入口标签 [基础用法] 标签:user 描述:动态显示购物车、登录、注册、退出、会员中心的入口; 用法: {eyou:user typeuserinfo} <div id"{$field.htmlid}"> …...
源码安装Redis 7.0.9并且systemctl管理
以下是在/usr/local/redis中通过源代码安装Redis 7.0.9并将其加入systemctl管理的步骤: 首先,下载Redis 7.0.9源代码包: wget https://download.redis.io/releases/redis-7.0.9.tar.gz解压缩Redis源代码包: tar xzf redis-7.0.9…...

编写程序:有92号和95号汽油可以选择,选择你需要的汽油,并输入需要加油的升数,点击按钮“`计算总价钱`“在div中可以得到你所需要支付的价格
需求: 有92号汽油和95号可以选择,选择你需要的汽油,并输入需要加油的升数,点击按钮"计算总价钱"在div中可以得到你所需要支付的价格。结构如下图所示: 详细代码如下: <!DOCTYPE html> &l…...

参考文献去哪里查找,参考文献标准格式是什么
1、参考文献类型: 普通图书[M]、期刊文章[J]、报纸文章[N]、论文集[C]、学位论 文[D]、报告[R]、标准[s]、专利[P]、数据库[DB]、计算机程序[CP]、电 子公告[EB]、联机网络[OL]、网上期刊[J/OL]、网上电子公告[EB/OL]、其他未 说明文献[z]。…...

WIFI标签操作步骤
1. 打开并设置手机WIFI热点,设置SSID为ESL,密码为123456789(如下图) 2. 运行APP,设置要接入的WIFI名称密码等信息(如下图) 3. 长按背面按键(长按2-3秒),…...

【Hello Linux】命令行解释器
作者:小萌新 专栏:Linux 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:使用进程的基础知识和进程控制知识做出一个简单的shell程序 命令行解释器介绍搭架子缓冲区获取命令如何从标准输入中获取字符串解析命令…...

开源一个通用的 HTTP 请求前端组件
像 Postman 这样可视化的 HTTP 请求工具是调试 API 不可或缺的利器。Postman 虽好但也越来越重,而且如果要整合到其他工具中,显然 Postman 又不是一个可行的方案。于是我想打造一个简单的前端组件(widget),它是一个标准…...
等保测评机构资质申请条件是什么?个人可以申请吗?
最近看到不少网友在问,等保测评机构资质申请条件是什么?个人可以申请吗?今天我们小编就来给大家详细回答一下。 等保测评机构资质申请条件是什么?个人可以申请吗? 【回答】:首先需要明确一点的是…...

android 卡顿、ANR优化(1)屏幕刷新机制
前言: 本文通过阅读各种文章和源码总结出来的,如有不对,还望指出 目录 正文 基础概念 视觉暂留 逐行扫描 帧 CPU/GPU/Surface: 帧率、刷新率、画面撕裂 画面撕裂 Android屏幕刷新机制的演变 单缓存(And…...

Landsat8中*_MTL.txt文件详解
01 什么是*_MTL.txt文件?所有的Landsat8 1级数据产品中均包含MTL.txt(Metadata File)文件。Landsat MTL文件包含对数据的系统搜索和归档分类有益的信息。该文件还包含关于数据处理和恶对增强陆地卫星数据有重要价值的信息(例如转换为反射率和辐射亮度&am…...

好的提高代码质量的方法有哪些?有什么经验和技巧?
用于确保代码质量的6个高层策略: 1 编写易于理解的代码 考虑如下这段文本。我们有意地使其变得难以理解,因此,不要浪费太多时间去解读。粗略地读一遍,尽可能吸收其中的内容。 〓ts〓取一个碗,我们现在称之为A。取一…...

yum保留安装包
一. 用downloadonly下载 1.1 处理依赖关系自动下载到/tmp/pages目录,pages这个目录会自动创建 yum install --downloadonly --downloaddir/tmp/pages ceph-deploy注意,如果下载的包包含了任何没有满足的依赖关系,yum将会把所有的依赖关系包下…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...