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 cron中的批处理
Sep 16 PHP
初学CAKEPHP 基础教程
Nov 02 PHP
Look And Say 序列php实现代码
May 22 PHP
一个PHP针对数字的加密解密类
Mar 20 PHP
PHP中的output_buffering详细介绍
Sep 27 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
ThinkPHP路由详解
Jul 27 PHP
php cli配置文件问题分析
Oct 15 PHP
PHP使用PHPexcel导入导出数据的方法
Nov 14 PHP
php解决和避免form表单重复提交的几种方法
Aug 31 PHP
PHP实现统计所有字符在字符串中出现次数的方法
Oct 17 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
May 11 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
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
2013/07/31 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
使用javascript实现json数据以csv格式下载
2015/01/09 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
微信小程序日历效果
2018/12/29 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
以一段代码为实例快速入门Python2.7
2015/03/31 Python
在Django中创建动态视图的教程
2015/07/15 Python
Python常用的爬虫技巧总结
2016/03/28 Python
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
python奇偶行分开存储实现代码
2018/03/19 Python
pytorch中的embedding词向量的使用方法
2019/08/18 Python
Spring Cloud Feign高级应用实例详解
2019/12/10 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
UGG美国官网:购买UGG雪地靴、拖鞋和鞋子
2017/12/31 全球购物
巴黎一票通:The Paris Pass
2018/02/10 全球购物
腾讯广告词
2014/03/19 职场文书
2014年党的群众路线教育实践活动总结
2014/04/25 职场文书
五水共治一句话承诺
2014/05/30 职场文书
学生实习证明模板汇总
2014/09/25 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
离婚协议书范本(2016最新版)
2016/03/18 职场文书
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL
MySQL范围查询优化的场景实例详解
2022/06/10 MySQL