文档章节

thinkphp中volist 和foreach 的区别

唐娇
 唐娇
发布于 2017/04/06 15:38
字数 587
阅读 13
收藏 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架构,很多第三方的插件...

网站安全
09/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Qt那些事0.0.9

关于QThread,无F*k说的。文档说的差不多,更多的是看到很多人提到Qt开发者之一的“你TM的做错了(You're doing it wrong...)”,这位大哥2010年写的博客,下面评论很多,但主要还是集中在2...

Ev4n
14分钟前
0
0
constructor / destructor

_attribute__表示属性,是Clang提供的一种源码注释,方便开发者向编译器表达诉求,一般以__attribute__(*)的方式出现在代码中。为了方便使用,一些常用属性被定义成了宏,经常出现在系统头文...

HeroHY
15分钟前
0
0
大数据教程(7.6)shell脚本定时采集日志数据到hdfs

上一篇博客博主分享了hadoop内置rpc的使用案例,本节博主将为小伙伴们分享一个在实际生产中使用的日志搜集案例。前面的文章我们有讲到过用户点击流日志分析的流程,本节就是要完成这个分析流...

em_aaron
43分钟前
1
0
wave和pcm互转

wav->pcm pcm->wav c#代码: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using Sys......

whoisliang
45分钟前
1
0
Win10:默认的图片打开应用,打开图片时速度明显很慢的解决办法

首先,我们随便地打开一张图片。然后,点击右上角的三个小点,最后点击弹出菜单最下面的“设置”。如下图: 在“设置”中找到下面的“人物”,把它关掉就好了。 原来,默认情况下,Win 10的图...

LivingInFHL
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部