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();
在模板定义以下,输出编号和姓名this
<volist name='list' id='vo'> {$vo.id} {$vo.name} </volist>
支持输出部分数据,例如输出其中的第5-15条记录:code
<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,例如:it
<volist name="list" id="vo" > {$i}.{$vo.name} </volist>
若是要输出数组的索引,能够直接使用key变量,和循环变量不一样的是,这个key是由数据自己决定,而不是循环控制的,例如:io
<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标签一般是用于输出数组。