5、循环标签
一 [ foreach ]
//1 向页面输出数组变量 $arr = ['a' => '10','b' => '20','c'=>'30']; return View::fetch('',['info' => $arr]); //2 模板页foreach循环 {foreach $info as $key=>$val} {$key}:{$val}</br> {/foreach} //3 页面输出 a:10 b:20 c:30
二 [ volist ]
1)使用场景
volist输出数据时 第一条是0 而非1 特别重要
主要输出查询数据集或二维数组
2)常用属性
1、name 模板赋值的变量名称
2、id 当前循环的变量(随意命名)不能和name属性冲突
3、offset 设置偏移量(从第几条开始显示)
4、length 显示条数
5、mod 取模的除数值
6、empty 没有数据时的提示语
7、key 输出循环变量
3)为空的时候输出提示( 常用 )
return View::fetch('index',['info' => '']); {volist name='info' id='vo' empty='没有数据'} {$vo.name}<br/> {/volist} //页面输出:没有数据
输出带样式的 提示
//empty属性不支持直接传入HTML语法 但是可以传入变量 View::assign('empty','<span style="color: red">没有数据</span>'); //向页面输出带css样式的变量 return View::fetch('',['info' => '']); //页面调用变量 {volist name='info' id='vo' empty='$empty'} {$vo.name}<br/> {/volist}页面打印:带css样式的提示:
4)输出下标是奇数的数据
//向页面传递变量 $arr = [ 0 => ['id'=>1,'name'=>'关羽'], 1 => ['id'=>2,'name'=>'张飞'], 2 => ['id'=>3,'name'=>'赵云'], 3 => ['id'=>4,'name'=>'黄忠'], 4 => ['id'=>5,'name'=>'马超'] ]; return View::fetch('index',['info' => $arr]);
//循环输出 {volist name='info' id='vo' mod='2'} //mod的值是除数的值 {eq name="mod" value="0"}{$vo.name} //value的值是余数的值 {/eq} {/volist} //value的值是1 输出 下标是奇数的数据 //value的值是0 输出 下标是偶数的数据
5)控制一定记录的换行( 重点 )
//以新闻列表页举例 <ul> <volist name="article" id="vo" empty="该分类下没有资讯" mod="5"> <li><a href="/Home/article/detail/article_id/{$vo.article_id}.html" target="_blank">{$vo.title}</a><span class="fr">{$vo.publish_time|date='Y-m-d',###}</span></li> <eq name="mod" value="4"></ul><div class="news_line"></div><ul></eq> </volist> </ul>

从这里可以看出,第一条资讯的数据排序是0,若设置为每5条进行一次分隔,那么就可以设置为数据序号除以5(mod=“5”)余数为4(value=“4”)。
余数(value="")需要设置的值,通常是比除数(mod="")的值小1。
自己动手
//1 向页面传递二维数组变量 $arr = [ ['id'=>1,'name'=>'关羽'], ['id'=>2,'name'=>'张飞'], ['id'=>3,'name'=>'赵云'], ['id'=>4,'name'=>'黄忠'], ['id'=>5,'name'=>'马超'], ['id'=>6,'name'=>'诸葛亮'], ['id'=>7,'name'=>'曹操'], ['id'=>8,'name'=>'孙权'], ['id'=>9,'name'=>'司马懿'], ['id'=>10,'name'=>'水镜先生'] ]; return View::fetch('',['info' => $arr]); //2 使用volist循环 每四个数据输出分隔符 ---- {volist name='info' id='vo' mod='4'} {$vo.name}<br/> {eq name="mod" value="3"}---------------<br/>{/eq} {/volist} //3 页面打印 关羽 张飞 赵云 黄忠 --------------- 马超 诸葛亮 曹操 孙权 --------------- 司马懿 水镜先生
6)输出循环变量
//向模板赋值变量 $arr = [ ['id'=>1,'name'=>'关羽'], ['id'=>2,'name'=>'张飞'], ['id'=>3,'name'=>'赵云'], ]; return View::fetch('',['info' => $arr]); //使用循环变量属性 {volist name="info" id="vo" key="k"} {$k}.{$vo.name}<br/> {/volist} //输出结果 1.关羽 2.张飞 3.赵云
//如果没有设置key 默认使用循环变量i
{volist name="info" id="vo"}
{$i}.{$vo.name}<br/>
{/volist}
//输出结果和上面一样
1.关羽
2.张飞
3.赵云
7)输出数组的索引 ( 常用 )
//直接用$key输出 {volist name="info" id="vo"} {$key}.{$vo.name}<br/> {/volist} //打印结果 0.关羽 1.张飞 2.赵云
8)在模板页调用model 没具体测试
{volist name=":model('user')->all()" id="vo"}
{$vo.name}
{/volist}
三 for循环
//输出1到100 {for start='0' end='100' step='1' comparison='lt' name='a'} {$a} {/for} //输出100到1 {for start='100' end='0' step='-1' comparison='gt' name='a'} {$a} {/for} //start 开始值 //end 结束值 //step 步长 //name 默认值是i //comparison 默认值lt 可选值gt

浙公网安备 33010602011771号