Volist 标签 volist标签通常用于查询数据集(select 方法),对于查询出来的结果数组进行遍历输出。 首先赋值: $User = M("User"); $list = $User->limit(10)->select(); $this->assign('list',$list); $this->display(); 页面的展示: <volist name="list" id="vo"> {$vo.id} : {$vo.name} <br/> </volist> 输出结果:1 : tom 3 : jack 5 : jetty 1.offset 、 length属性 —— 输出部分数据 <volist name="list" id="vo" offset="4" length="5"> {$vo.id} : {$vo.name} <br/> </volist> //显示的是第5条到第10条数据 结果: 18 : jetty 19 : tom2 20 : tom3 21 : tom4 22 : tom5 2.mod属性 —— 将数据分块输出 /* 输出偶数数据 * 第一行的mod值是将数据分成2个一组,序号都是从0开始 * 第二行 当mod值为1时输出数据,也就是显示偶数的数据 */ <volist name="list" id="vo" mod="2"> <eq name="mod" value="1">{$vo.name}</eq> </volist> /* 控制一行记录的换行 * 同理,先将数据分成4个一组,都是从0开始标序号 输出所有数据 * 当每组中的序号为3 也就是显示最后一个数据后,输出换行符 */ <volist name="list" id="vo" mod="4"> {$vo.name} <eq name="mod" value="3"><br/></eq> </volist> 3.empty —— 数据为空提示 <volist name="list" id="vo" emptyempty="暂时没有数据显示"> {$vo.id}|{$vo.name} </volist> //如果没有可显示的数据 就会输出 "暂时没有数据显示"提示 /* * empty 支持向页面传值 */ $this->assign('empty','<span class="empty">没有可显示的数据</span>'); $this->assign('list',$list); $this->display(); //模板中使用: <volist name="list" id="vo" offset="10" length="3" emptyempty="$empty"> {$vo.id}|{$vo.name} </volist> 4.key属性 —— 输出数据序号 <volist name="list" id="vo" emptyempty="$empty" key="k"> {$k} : {$vo.name} </volist> //序号 从1开始 /* 如果key属性没有写,默认的可以用i表示 * 结果与上同 序号也是从1开始 */ <volist name="list" id="vo" emptyempty="$empty"> {$i} {$vo.id}|{$vo.name} </volist> 注:也可以只用key变量,此时序号从0开始。 Foreach标签 foreach标签类似与volist标签,只是更加简单,没有太多额外的属性 name : 表示数据源 item : 表示循环变量 <foreach name="list" item="vo"> {$key}|{$vo} </foreach> //也可以定义索引的变量名 <foreach name="list" item="vo" key="k"> {$k}|{$vo} </foreach> //索引都是从0开始 For 标签 格式: <for start="开始值" end="结束值" comparison="判断条件" step="步进值" name="循环变量名"> </for> 开始值、结束值、步进值和循环值都可以支持变量,开始值和结束值是必须,其他是可选。comparison的默认值是lt;name的默认值是i,步进值的默认值是1 <for start="1" end="100"> {$i} </for> /* 解析后的代码是: for($i=1; $i<100; $i+=1){ echo $i } */ /** * for循环输出user对象的数据值,k是循环变量名 */ <for start="1" end="6" name="k"> {$user[$k]['id']} : {$user[$k]['username']} <br/> </for>