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 相关文章推荐
2.PHP入门
Oct 09 PHP
php自动适应范围的分页代码
Aug 05 PHP
php array_search() 函数使用
Apr 13 PHP
PHP操作mysql函数详解,mysql和php交互函数
May 19 PHP
php curl常见错误:SSL错误、bool(false)
Dec 28 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
Joomla语言翻译类Jtext用法分析
May 05 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
Jun 28 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
PHP依赖注入原理与用法分析
Aug 21 PHP
PHP设计模式之模板方法模式实例浅析
Dec 20 PHP
thinkPHP框架乐观锁和悲观锁实例分析
Oct 30 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代码审计比较有意思的例子
2014/05/07 PHP
php实现学生管理系统
2020/03/21 PHP
php中array_column函数简单实现方法
2016/07/11 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
2017/08/14 PHP
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
针对初学者的jQuery入门指南
2015/08/15 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
解决csv.writer写入文件有多余的空行问题
2018/07/06 Python
python3使用flask编写注册post接口的方法
2018/12/28 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
纯css3实现照片墙效果
2014/12/26 HTML / CSS
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
HTML5表格_动力节点Java学院整理
2017/07/11 HTML / CSS
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
英国计算机商店:Technextday
2019/12/28 全球购物
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
放飞梦想演讲稿600字
2014/08/26 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
2015年领班工作总结
2015/04/29 职场文书
2016党员入党决心书
2015/09/22 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书
MySQL系列之六 用户与授权
2021/07/02 MySQL