文档章节

thinkphp中volist 和foreach 的区别

唐娇
 唐娇
发布于 2017/04/06 15:38
字数 587
阅读 15
收藏 0

1.volist

volist标签主要用于在模板中循环输出数据集或者多维数组

volist(name,id,offset,length,key,mod,empty)  

name(必须):要输出的数据模型变量
id(必须):循环变量
offset(可选):要输出数据的offset
length(可选):输出数据的长度
key(可选):循环的key变量,默认值为i
mod(可选):对key值取模,默认为2(用于偶数行查询等)
empty(可选):如果数据为空显示的字符串
通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。
在Action中首先对模板赋值:

$user=M('User');  
$list=$user->select();  
$this->assign('list',$list);
$this->display();

在模板定义如下,输出编号和姓名

<volist name='list' id='vo'>
 {$vo.id}
 {$vo.name}
</volist>

支持输出部分数据,例如输出其中的第5-15条记录:

<volist name='list' id='vo' offset='5' length='10'>
 {$vo.id}
 {$vo.name}
</volist>

输出偶数行记录:

<volist name='list' id='vo' mod='2'>
 <eq name="mod" value='1'>{$vo.name}</eq>
</volist>

mod属性还用于控制一定记录的换行:

<volist name='list' id='vo' mod='5'>
{$vo.name}
<eq name="mod" value='4'><br/></eq>
</volist>

输出循环变量:

<volist name='list' id='vo' key='k'>
{$k}.{$vo.name}
</volist>

如果没有指定key属性的话,默认使用循环变量i,例如:

<volist name="list" id="vo"  >
{$i}.{$vo.name}
</volist>

如果要输出数组的索引,可以直接使用key变量,和循环变量不同的是,这个key是由数据本身决定,而不是循环控制的,例如:

<volist name="list" id="vo"  >
{$key}.{$vo.name}
</volist>

volist还有一个别名iterate,用法和volist是一样。 从2.1版开始允许使用函数设定数据集,如:

<volist name=":fun('arg')" id="vo">{$vo.name}</volist>

##2. foreach标签 foreach标签用于循环输出: foreach(name,item,key) name(必须):要输出的数据模板变量 item(必须):循环单原变量 key(可选):循环的key变量,默认值为key 示例:

<foreach name='list' item='vo'>
 {$vo.id}
 {$vo.name}
</foreach>

可以输出索引,如下:

<foreach name="list" item="vo" >
    {$key}|{$vo.id}:{$vo.name}
</foreach>

也可以定义索引的变量名

<foreach name="list" item="vo" key="k" >
  {$k}|{$vo.id}:{$vo.name}
</foreach>

foreach标签相对于volist标签简洁,没有volist标签那么多功能。优势是可以对对象进行遍历输出,而volist标签通常是用于输出数组。

© 著作权归作者所有

共有 人打赏支持
唐娇
粉丝 0
博文 24
码字总数 7388
作品 0
昆明
程序员
私信 提问
ThinkPHP 查询数据 select(findAll) 方法

ThinkPHP 查询数据 ThinkPHP 查询数据主要提供以下几类查询: select:普通查询,同 findAll() 方法 find:取得符合查询条件的一条记录 getBy动态查询:根据某个字段取得符合查询条件的一条记...

WangEven
2012/05/10
0
0
ThinkPHP 学习笔记 (三)View层操作

一、模板变量设置及显示 1、模板变量赋值 $this->assign('name',$value);//或者下面的写法:$this->name = $value; 2、变量输出 $this->display(); 3、页面显示 {$变量名称} <body><p>用 户 ......

bugyang
2013/02/19
0
1
ThinkPHP的操作基础(二)

1.$readTimerankresult=M('blog')->order('bReadTime DESC')->limit(3)->select(): a.返回值为数据集,可以用一下的方法在前台输出: <volist name="readTime" id="r"> {$r.Id} nbsp; {$r.......

笨小熊
2014/07/31
0
0
ThinkPHP的使用基础(二)

1.$readTimerankresult=M('blog')->order('bReadTime DESC')->limit(3)->select(): a.返回值为数据集,可以用一下的方法在前台输出: <volist name="readTime" id="r"> {$r.Id} nbsp; {$r.......

笨小熊
2014/07/31
0
0
网站安全检测 网站漏洞修复 对thinkphp通杀漏洞利用与修复建议

thinkphp在国内来说,很多站长以及平台都在使用这套开源的系统来建站,为什么会这么深受大家的喜欢,第一开源,便捷,高效,生成静态化html,第二框架性的易于开发php架构,很多第三方的插件...

网站安全
2018/09/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
今天
7
0
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
今天
2
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
今天
4
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
今天
3
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部