PHP 学习笔记之一:thinkPHP的volist标签
Volist标签主要用于在模板中循环输出数据集或者多维数组。
属性:
name : 必须,输出数据模板变量,后台提供的变量。
id : 必须,是循环变量,可以随便定义,但是不能跟name相同。
举个栗子:
<volist name="user" id="vo">
{$vo.name}
</volist>
后台传入user变量
$this->assign('user',$user);
这样就循环输出user的name
offset : 可选,从模板变量的第几个开始循环。
lengthb : 可选,输出数据的长度。
举个栗子:
<volist name="user" id="vo" offset="5" length="10">
{$vo.name}
</volist>
输出第5条到第15条记录
key : 可选,循环的索引。
举个栗子:
<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’]