Thinkphp中的volist标签用法简介


Posted in PHP onJune 18, 2014

通常volist标签多用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,对此可以直接使用volist标签进行输出。

在控制器中首先对模版赋值,如下例所示:

$User = M('User');
$list = $User->limit(10)->select();
$this->assign('list',$list);

在模版定义如下,循环输出用户的编号和姓名:

<volist name="list" id="vo">
{$vo.id}:{$vo.name}<br/>
</volist>

Volist标签的name属性表示模板赋值的变量名称,因此不可随意在模板文件中改变。id表示当前的循环变量,可以随意指定,但需要确保不要和name属性冲突,例如:

<volist name="list" id="data">
{$data.id}:{$data.name}<br/>
</volist>

支持输出查询结果中的部分数据,例如输出其中的第5~15条记录:

<volist name="list" id="vo" offset="5" length='10'>
{$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" empty="暂时没有数据" >
{$vo.id}|{$vo.name}
</volist>

empty属性不支持直接传入html语法,但可以支持变量输出,例如:

$this->assign('empty','<span class="empty">没有数据</span>');
$this->assign('list',$list);

然后在模板中使用:

<volist name="list" id="vo" empty="$empty" >
{$vo.id}|{$vo.name}
</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 name=":fun('arg')" id="vo">
{$vo.name}
</volist>

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
第十节 抽象方法和抽象类 [10]
Oct 09 PHP
动态生成gif格式的图像要注意?
Oct 09 PHP
php 无限级缓存的类的扩展
Mar 16 PHP
php面向对象全攻略 (十) final static const关键字的使用
Sep 30 PHP
实用PHP会员权限控制实现原理分析
May 29 PHP
PHP中使用file_get_contents post数据代码例子
Feb 13 PHP
php计算年龄精准到年月日
Nov 17 PHP
php基于CodeIgniter实现图片上传、剪切功能
May 14 PHP
session 加入redis的实现代码
Jul 15 PHP
nginx下安装php7+php5
Jul 31 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
Feb 09 PHP
php中yii框架实例用法
Dec 22 PHP
ThinkPHP令牌验证实例
Jun 18 #PHP
Smarty局部缓存的几种方法简介
Jun 17 #PHP
smarty模板局部缓存方法使用示例
Jun 17 #PHP
CodeIgniter CLI模式简介
Jun 17 #PHP
CI框架在CLI下执行占用内存过大问题的解决方法
Jun 17 #PHP
CI框架自动加载session出现报错的解决办法
Jun 17 #PHP
Thinkphp模板中截取字符串函数简介
Jun 17 #PHP
You might like
玛琪朵 Macchiato
2021/03/03 咖啡文化
php sprintf()函数让你的sql操作更安全
2008/07/23 PHP
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
php中自定义函数dump查看数组信息类似var_dump
2014/01/27 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
PHP目录操作实例总结
2016/09/27 PHP
JavaScript函数、方法、对象代码
2008/10/29 Javascript
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
from 表单提交返回值用post或者是get方法实现
2013/08/21 Javascript
js中arguments,caller,callee,apply的用法小结
2014/01/28 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
jQuery的deferred对象详解
2014/11/12 Javascript
javascript检查浏览器是否已经启用XX功能
2015/07/10 Javascript
基于JQuery实现图片轮播效果(焦点图)
2016/02/02 Javascript
深入理解vue中的$set
2017/06/01 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
python的类变量和成员变量用法实例教程
2014/08/25 Python
Python之PyUnit单元测试实例
2014/10/11 Python
python使用socket连接远程服务器的方法
2015/04/29 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
python实现黑客字幕雨效果
2018/06/21 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
Python列表对象实现原理详解
2019/07/01 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
pip install命令安装扩展库整理
2021/03/02 Python
耐克中国官方商城:Nike中国
2018/10/18 全球购物
超市仓管员岗位职责
2014/04/07 职场文书
2015年调度员工作总结
2015/04/30 职场文书
2016年元旦寄语
2015/08/17 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
Redis延迟队列和分布式延迟队列的简答实现
2021/05/13 Redis