Volist标签主要用于在模板中循环输出数据集或者多维数组。
属性:
name(必须):要输出的数据模板变量,后台提供的变量。
id(必须):循环变量,可以随便定义,但是不能跟name相同。
offset(可选):要输出数据的offset,从模板变量的第几个开始循环。
length(可选):输出数据的长度
key(可选):循环的key变量,默认值为i
mod(可选):对key值取模,默认为2
empty(可选):如果数据为空显示的字符串
例1:
<volist name="user" id="vo">
{$vo.name}
</volist>
后台传入user变量
$this->assign('user',$user);
这样就循环输出user的name
例2:
<volist name="user" id="vo" offset="5" length="10">
{$vo.name}
</volist>
输出第5条到第15条记录
key : 可选,循环的索引。
例3:
<volist name="user" id="vo" key="k">
{$k}.{$vo.name}
</volist>
输出:
1.名字1
2.名字2
3.名字3
...
<volist name="user" id="vo">
{$i}.{$vo.name}
{$key}.{$vo.name}
</volist>
如果没有定义key,默认使用i,或者是key,效果也是一样的
empty : 可选,数据为空的时候输出的内容
<volist name="list" id="vo" empty="暂时没有数据" >
{$vo.name}
</volist>
拓展一下: 从2.1版开始允许在模板中直接使用函数设定数据集,而不需要在控制器中给模板变量赋值传入数据集变量,如:
<volist name=":fun('arg')" id="vo">{$vo.name}</volist>
还有在volist循环里面,如果嵌入php代码,怎么输出变量?直接看栗子吧:
<select>
<volist name="goods" id="vo">
<option value="{$vo.goods_name}" <?php echo ($goods_name == $vo['goods_name'])?"selected":"" ?> >{$key}.{$vo.goods_name}</option>
</volist>
</select>
在下拉列表里面,根据后台提供的数据,动态的添加option选项。在里面,用php代码,实现select动态显示option的值,而在php代码块中,使用volist的变量,则要使用$vo[‘goods_name’]