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入门学习知识点三 PHP上传
Jul 14 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
php 字符串压缩方法比较示例
Jan 23 PHP
php统计时间和内存使用情况示例分享
Mar 13 PHP
强制PHP命令行脚本单进程运行的方法
Apr 15 PHP
PHP对文件夹递归执行chmod命令的方法
Jun 19 PHP
Smarty环境配置与使用入门教程
May 11 PHP
PHP递归的三种常用方式
Feb 28 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 PHP
Laravel框架创建路由的方法详解
Sep 04 PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 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中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
js作用域及作用域链概念理解及使用
2013/04/15 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
2019/09/07 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
[38:31]完美世界DOTA2联赛PWL S3 Magma vs GXR 第一场 12.13
2020/12/17 DOTA
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
Python实现发票自动校核微信机器人的方法
2020/05/22 Python
python如何查看网页代码
2020/06/07 Python
python线程里哪种模块比较适合
2020/08/02 Python
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
塑料制成的可水洗的编织平底鞋和鞋子:Rothy’s
2018/09/16 全球购物
Groupon荷兰官方网站:高达70%的折扣
2019/11/01 全球购物
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
2013/04/24 面试题
护理学应聘自荐书范文
2014/02/05 职场文书
公司借条范本
2015/05/25 职场文书
Python超简单容易上手的画图工具库推荐
2021/05/10 Python
mysql 带多个条件的查询方式
2021/06/05 MySQL
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
一文搞懂Python Sklearn库使用
2021/08/23 Python
Pygame Time时间控制的具体使用详解
2021/11/17 Python