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运算符
Oct 09 PHP
PHP 图片水印类代码
Aug 27 PHP
PHP递归返回值时出现的问题解决办法
Feb 19 PHP
判断php数组是否为索引数组的实现方法
Jun 13 PHP
PHP读取文件内容后清空文件示例代码
Mar 18 PHP
codeigniter集成ucenter1.6双向通信的解决办法
Jun 12 PHP
PHP中使用asort进行中文排序失效的问题处理
Aug 18 PHP
php获取、检查类名、函数名、方法名的函数方法
Jun 25 PHP
深入浅析yii2-gii自定义模板的方法
Apr 26 PHP
Smarty实现页面静态化(生成HTML)的方法
May 23 PHP
PHPStrom 新建FTP项目以及在线操作教程
Oct 16 PHP
PHP命名空间与自动加载机制的基础介绍
Aug 25 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程序
2006/10/09 PHP
php curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
2009/06/02 Javascript
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
深入浅析vue全局环境变量和模式
2020/04/28 Javascript
JavaScript中layim之整合右键菜单的示例代码
2021/02/06 Javascript
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
Python写入CSV文件的方法
2015/07/08 Python
Python实现的异步代理爬虫及代理池
2017/03/17 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
Python检查ping终端的方法
2019/01/26 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
成人继续教育实施方案
2014/03/01 职场文书
运输服务质量承诺书
2014/03/27 职场文书
网站客服岗位职责
2014/04/05 职场文书
2015年小学教导处工作总结
2015/05/26 职场文书
mysql查看表结构的三种方法总结
2022/07/07 MySQL