Thinkphp的Volist标签

摘要:
Volist标记主要用于循环出模板中的数据集或多维数组。Volist标记已关闭未关闭标记属性名称(必需):要输出的数据模板变量id(必需);循环变量offset(可选):要输入的数据长度(可选);输出数据键的长度(可选的):循环键变量。默认值为imod(可选):模键值,默认值为2empty(可选),如果数据为空,则显示的字符串通常是模型的select方法返回的二维数组,可以使用volist标记直接输出。
Volist标签主要用于在模板中循环输出数据集或者多维数组。
volist标签(循环输出数据)
闭合非闭合标签
属性

name(必须):要输出的数据模板变量


id(必须):循环变量


offset(可选):要输出数据的offset


length(可选):输出数据的长度


key(可选):循环的key变量,默认值为i


mod(可选):对key值取模,默认为2


empty(可选):如果数据为空显示的字符串

通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。
在Action中首先对模版赋值:
  1. $User = M('User');
  2. $list = $User->select();
  3. $this->assign('list',$list);
在模版定义如下,循环输出用户的编号和姓名:
  1. <volist name="list" id="vo">
  2. {$vo.id}
  3. {$vo.name}
  4.  </volist>
Volist标签的name属性表示模板赋值的变量名称,因此不可随意在模板文件中改变。id表示当前的循环变量,可以随意指定,但确保不要和name属性冲突,例如:
  1. <volist name="list" id="data">
  2. {$data.id}
  3. {$data.name}
  4.  </volist>
支持输出部分数据,例如输出其中的第5~15条记录
  1. <volist name="list" id="vo" offset="5" length='10'>
  2. {$vo.name}
  3.  </volist>
9
输出偶数记录
  1. <volist name="list" id="vo" mod="2" >
  2.  <eq name="mod" value="1">{$vo.name}</eq>
  3.  </volist>
Mod属性还用于控制一定记录的换行,例如:
  1. <volist name="list" id="vo" mod="5" >
  2. {$vo.name}
  3.  <eq name="mod" value="4"><br/></eq>
  4.  </volist>
5
为空的时候输出提示:
  1. <volist name="list" id="vo" empty="暂时没有数据" >
  2. {$vo.id}|{$vo.name}
  3.  </volist>
empty属性不支持直接传入html语法,但可以支持变量输出,例如:
  1. $this->assign('empty','<span class="empty">没有数据</span>');
  2. $this->assign('list',$list);
然后在模板中使用:
  1. <volist name="list" id="vo" empty="$empty" >
  2. {$vo.id}|{$vo.name}
  3.  </volist>
1
输出循环变量
  1. <volist name="list" id="vo" key="k" >
  2. {$k}.{$vo.name}
  3.  </volist>
如果没有指定key属性的话,默认使用循环变量i,例如:
  1. <volist name="list" id="vo"  >
  2. {$i}.{$vo.name}
  3.  </volist>
如果要输出数组的索引,可以直接使用key变量,和循环变量不同的是,这个key是由数据本身决定,而不是循环控制的,例如:
  1. <volist name="list" id="vo"  >
  2. {$key}.{$vo.name}
  3.  </volist>
 
从2.1版开始允许在模板中直接使用函数设定数据集,而不需要在控制器中给模板变量赋值传入数据集变量,如:
    1. <volist name=":fun('arg')" id="vo">{$vo.name}</volist>

免责声明:文章转载自《Thinkphp的Volist标签》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Ubuntu 汉化及kate汉化和使用自带终端的解决方式蓝桥杯-测试次数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Shell脚本1

1Shell编程 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序。 业界所说的 shell 通常都是指 shell 脚本,(java文本文件)2 Shell环境 Shell...

Win32汇编_变量

Win32汇编_变量全局变量:全局变量的作用域是整个程序,Win32汇编的全局变量定义在.data或.data?段内,可以同时定义变量的类型和长度.格式是:变量名类型初始值1, 初始值2, …变量名类型重复数量 dup (初始值1, 初始值2, …)例:.data;全局变量的类型才可以用缩写wHour dw ? ;未初始化的word类型变量wMinute...

汇编语言程序设计读书笔记(4)- 程序设计基础之一

目录: 一、数据定义 1、变量数据定义 2、常量数据定义 3、缓冲区定义 二、寻址方式 1、立即数寻址 2、寄存器寻址 3、直接寻址 4、寄存器间接寻址 5、寄存器相对寻址 6、变址寻址 三、数据传送和mov指令 1、数据传送规则 2、mov指令 四、条件传送数据cmov指令 1、状态标志位 2、cmov指令 五、交换数据 1...

LINQ 和泛型类型

LINQ 查询基于泛型类型,在 .NET Framework 的 2.0 版中引入了泛型类型。您无需深入了解泛型即可开始编写查询。但是,您可能需要了解两个基本概念: 当您创建泛型集合类(如 List(Of T))的实例时,您将“T”替换为列表将包含的对象的类型。例如,字符串列表表示为 List<string>,Customer 对象列表表示...

golang闭包和range,关于闭包内使用外部变量

遇到经典问题 func mian() { resslice := []int{1, 2, 3, 4} for _, v := range resslice { fmt.Println(v) defer fun1(v) } } func fun1(value int) { fmt.Println(value) }   输出结果为...

sql编程命名规范

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 一、表名1、基础表(一般整个系统都要用到,三个子系统以上用到都算作基础表) ba开头,后面用英文单词,首字母大写,需要多个英文词的每个单词首字母大写 如baDepartment b...