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 相关文章推荐
php+AJAX传送中文会导致乱码的问题的解决方法
Sep 08 PHP
探讨:如何使用PhpDocumentor生成文档
Jun 25 PHP
九个你必须知道而且又很好用的php函数和特点
Aug 08 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 PHP
php使用curl模拟登录后采集页面的例子
Nov 04 PHP
浅谈php安全性需要注意的几点事项
Jul 17 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
Aug 22 PHP
php创建、获取cookie及基础要点分析
Jan 26 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
PHP fclose函数用法总结
Feb 15 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
PHP实现简单注册登录系统
Dec 28 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
网站上面有这种切换效果
2006/06/26 Javascript
一个对于Array的简单扩展
2006/10/03 Javascript
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
jquery实现图片列表鼠标移入微动
2016/12/01 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
详解JavaScript中的六种错误类型
2017/09/21 Javascript
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
ES6箭头函数和扩展实例分析
2020/05/23 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
django celery redis使用具体实践
2019/04/08 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
2020/02/21 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
eBay比利时购物网站:eBay.be
2019/08/09 全球购物
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
中专毕业生自荐信范文
2013/11/28 职场文书
《要下雨了》教学反思
2014/02/17 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
党的群众路线教育实践活动批评与自我批评发言稿
2014/10/16 职场文书
加强干部作风建设整改方案
2014/10/24 职场文书
优秀教师先进材料
2014/12/16 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
MySQL 计算连续登录天数
2022/05/11 MySQL