Thinkphp 6.0模版的循环标签
本节课我们来学习一下模版标签中循环标签的使用,包括 foreach、volist 和 for。
一.foreach 循环
1. 控制前端先通过模型把相应的数据列表给筛选出来;
$list = User::select();
return View::fetch('loop', [
'list' => $list
]);
2. 在模版端使用对称的标签{foreach}...{/foreach}实现循环;
3. 注意:这里对象调用时:用->符号或用.符号均可正确实现数据显示;
{foreach $list as $key=>$obj}
<tr>
<td>{$key}/{$obj->id}</td> //{$obj.id}也行
<td>{$obj->username}</td>
<td>{$obj->gender}</td>
<td>{$obj->email}</td>
<td>{$obj->price}</td>
<td>{$obj->create_time}</td>
</tr>
{/foreach}
二.volist 循环
1. volist 也是将查询得到的数据集通过循环的方式进行输出;
{volist name="list" id="obj"}
<tr>
<td>{$key}/{$obj->id}</td> //{$obj.id}也行
<td>{$obj->username}</td>
<td>{$obj->gender}</td>
<td>{$obj->email}</td>
<td>{$obj->price}</td>
<td>{$obj->create_time}</td>
</tr>
{/volist}
2. volist 中的 name 属性表示数据总集,id 属性表示当前循环的数据单条集;
3. 使用 offset 属性和 length 属性从第 4 条开始显示 5 条,这里下标从 0 开始;
{volist name="list" id="obj" offset='3' length='5'}
4. 可以使用 eq 标签(下节课比较标签的知识点),来实现奇数或偶数的筛选数据;
{volist name="list" id="obj" mod="2"}
{eq name='mod' value='0'}...
5. 通过编译文件可以理解,mod=2 表示索引除以 2 得到的余数是否等于 0 或 1;
6. 如果余数设置为 0,那么输出的即偶数,如果设置为 1,则输出的是奇数;
7. 当然,切换到其它数字,也会有更多的排列效果;
8. 使用 empty 属性,可以当没有任何数据的时候,实现输出指定的提示;
{volist name="list" id="obj" empty="没有数据"}
9. 使用 key='k',让索引从 1 开始计算,不指定就用{$i},指定后失效;
{volist name='list' id='obj' key='k'}
{$k}
{/volist}
三.for 循环
1. for 循环,顾名思义,通过起始和终止值,结合步长实现的循环;
{for start='1' end='100' comparison='lt' step='2' name='i'}
{$i}
{/for}