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新手上路(三)
Oct 09 PHP
php查看session内容的函数
Aug 27 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
Jul 18 PHP
php中error与exception的区别及应用
Jul 28 PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
php通过各种函数判断0和空
Jul 04 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
Jun 19 PHP
PHP的mysqli_sqlstate()函数讲解
Jan 23 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
Jun 05 PHP
php中文语义分析实现方法示例
Sep 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
PHP编程中八种常见的文件操作方式
2006/11/19 PHP
php读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
ThinkPHP权限认证Auth实例详解
2014/07/22 PHP
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
JavaScript生成的动态下雨背景效果实现方法
2015/02/25 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
js推箱子小游戏步骤代码解析
2018/01/10 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
Python实现Linux下守护进程的编写方法
2014/08/22 Python
python计算书页码的统计数字问题实例
2014/09/26 Python
python实现键盘控制鼠标移动
2020/11/27 Python
学习python可以干什么
2019/02/26 Python
Django对models里的objects的使用详解
2019/08/17 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
Python日志logging模块功能与用法详解
2020/04/09 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
生产车间班组长岗位职责
2014/01/06 职场文书
运动会横幅标语
2014/06/17 职场文书
党的群众路线教育实践活动党员个人整改措施
2014/10/27 职场文书
先进教师事迹材料
2014/12/16 职场文书
获奖感言怎么写
2015/07/31 职场文书
中学团支部工作总结
2015/08/13 职场文书
输入框跟随文字内容适配宽实现示例
2022/08/14 Javascript