php

thinkPHP的volist标签

2023-10-09

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’]