Thinkphp中的内置标签用法
Thinkphp中的内置标签有:Volist,Foreach,For,Switch,比较标签,范围判断标签,IF,Present,Empty,Defined,Assign,Define,标签嵌套,import标签
1.Volist标签
volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。在控制器中首先对模板赋值:
$User=M("User"); $list=$User->limit(10)->select(); $this->assign("list",$list);
在模板定义如下,循环输出用户的编号和姓名:(也可以输出部门数据,例如输出其中的5~15条记录)
<volist name="list" id="vo" offset="5" length="10" empty="无数据"> {$vo.id}:{$vo.name} <volist>
2.Foreach标签
foreach标签类似与volist标签,只是更加简单,没有太多额外的属性,例如:{$vo.id}:{$vo.name}
name标识数据源item表示循环变量。
可以输出索引,如下:
<foreach name="list" item="vo"> {$key}|{$vo} </foreach>
也可以定义索引的变量名
<foreach name="list" item="vo" key="k"> {$k}|{$vo} </foreach>
3.For标签
用法:
<for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名"></for>
开始值、结束值、步进值和循环变量都可以支持变量,开始值和结束值是必须,其它可选。comparison的默认值是lt;name的默认值是i,步进值的默认值是1,举例如下:
<for start="1" end="100">{$i}</for>
解析后的代码是
for($i=1;$i<100;$i+=1){ echo $i; }
4.Switch标签
用法:
<switch name="变量"> <case value="值1" break="0或1">输入内容1</case> <case value="值2">输出内容2</case> <default/>默认情况 </switch>
使用方法如下:
<switch name="User.level"> <case value="1">value1</case> <case value="2">value2</case> <default/>default </switch>
其中name属性可以使用函数以及系统变量,例如:
<switch name="Think.get.userId|abs"> <case value="1">admin</case> <default/>default </switch>
对于case的value属性可以支持多个条件的判断,使用“|”进行分割,例如:
<switch name="Think.get.type"> <case value="gif|png|jpg">图像格式</case> <default/>其它格式 </switch>
Case标签还有一个break属性,表示是否需要break,默认是会自动添加break,如果不要break,可以使用:
<switch name="Think.get.userId|abs"> <case value="1" break="0" >admin</case> <case value="2">admin</case> <default/>default </switch>
也可以对case的value属性使用变量,例如:
<switch name="User.userId"> <case value="$adminId">admin</case> <case value="$memberId">member</case> <default/>default </switch>
5.比较标签
比较表浅用于简单的变量比较,复杂的判断条件可以用if标签替换,比较标签是一组标签的集合,基本上用法都一致,如下:
<比较标签 name="变量" value="值">
内容
</比较标签>
系统支持的比较标签以及所表示的含义分别是:
- eq或equal:等于
- neq或notequal:不等于
- gt:大于
- egt:大于等于
- lt:小于
- elt:小于等于
- heq:恒等于
- nheq:不恒等于
他们的用法基本一致,区别在于判断的条件不同,并且所有的比较标签都可以和else标签一起使用。
<eq name="name" value="value">
相等
<else/>
不相等
</eq>
当name变量的值大于5就输出
<gt name="name" value="5">value</gt>
当name变量的值不小于5就输出
<egt name="name" value="5">value</egt>
6.范围判断标签
范围判断标签包括 in notin between notbetween 四个标签,都用于判断变量是否在否个范围。
最新文章
- ajax请求成功后新开窗口window.open()被拦截解决方法
- 【GoLang】GoLang 遍历 map、slice、array方法
- js(function(){alert(‘’‘)})
- centos修改hostname以及时间同步
- 使用AJAX完成用户名是否存在异步校验
- Java Blocking Queue
- 使用JAP(基类)父类注解
- OpenCV3读取、写入和保存图像
- php中对共享内存,消息队列的操作
- (转载)Delphi TStringList的用法
- EXT ajax简单实例
- 邮件协议(SMTP)性能测试总结(Foxmail邮箱)
- 【翻译】Why JavaScript Is and Will Continue to Be the First Choice of Programmers
- php之PDO使用【转载】
- 内网服务器启动报错UNEXPECTED INCONSISTENCY解决方法
- 开源IM项目-InChat登录接口设计与实现(基于Netty)
- Vue-比较方法、计算属性和侦听器
- lua语言中的假
- NET Core微服务之路:自己动手实现Rpc服务框架,基于DotEasy.Rpc服务框架的介绍和集成
- Linux获取/dev/input目录下的event对应的设备【转】
热门文章
- 基于Struts2,Spring4,Hibernate4框架的系统架构设计与示例系统实现
- 关于[JAVA] Apache FTPClient.listFiles()操作“卡死”问题的分析和解决
- CoreCRM 开发实录 —— 前后端分离的重构
- java集合系列
- [转载]PHP文件解压代码
- 初识Celery
- MySQL自增长的bug?
- IO多路复用深入浅出
- 精华【分布式、微服务、云架构、dubbo+zookeeper+springmvc+mybatis+shiro+redis】分布式大型互联网企业架构!
- 使用函数指针调用C++虚函数