ThinkPHP 6.1 模板篇之循环和选择标签

本文主要介绍在视图模板中,如何使用循环和选择标签去渲染变量及常用循环和选择标签。

目录

循环标签

foreach 标签

for 标签

volist 标签

选择标签

switch 标签

if 标签

范围标签

原生标签

总结


循环标签

foreach 标签

将查找到的数组或数据集,使用{foreach}...{/foreach}函数渲染

<table border="1">
    <tr>
        <th>ID</th>
        <th>姓名</th>
        <th>性别</th>
        <th>爱好</th>
    </tr>
    {foreach $arr as $k => $v}
        <tr>
            <td>{$v.id}</td>
            <td>{$v.name}</td>
            <td>{$v.gender}</td>
            <td>{$v.hobby}</td>
        </tr>
    {/foreach}
</table>

注意:循环的变量名称要与传参名称一致。

for 标签

与php原生代码使用有所不同,通过起始和终止值,结合步长实现的循环。

简单例子:1-100

{for start="1" end="100" step="1"}
    {$i}
{/for}

渲染数据,默认是i,可通过name修改

{for start="0" end="count($arr)" step="1" name="i"}
    <tr>
        <td>{$arr[$i]['id']}</td>
        <td>{$arr[$i]['name']}</td>
        <td>{$arr[$i]['gender']}</td>
        <td>{$arr[$i]['hobby']}</td>
    </tr>
{/for}

volist 标签

volist 也是将查询得到的数据集通过循环的方式进行输出

name 属性表示数据总集,id 属性表示当前循环的数据单条集。

{volist name="arr" id="val"}
    <tr>
        <td>{$val.id}</td>
        <td>{$val.name}</td>
        <td>{$val.gender}</td>
        <td>{$val.hobby}</td>
    </tr>
{/volist}

使用 offset 属性和 length 属性从第2条开始显示2条,默认下标从0开始;

{volist name="arr" id="val" offset='1' length='2'}
    <tr>
        <td>{$val.id}</td>
        <td>{$val.name}</td>
        <td>{$val.gender}</td>
        <td>{$val.hobby}</td>
    </tr>
{/volist}

当没有任何数据的时候,使用 empty 属性实现输出指定的提示;

{volist name="arr" id="val" offset='10' length='2' empty="没有数据"}
    <tr>
        <td>{$val.id}</td>
        <td>{$val.name}</td>
        <td>{$val.gender}</td>
        <td>{$val.hobby}</td>
    </tr>
{/volist}

默认key从0开始计算;可使用 key='k',让索引从 1 开始计算;

{volist name="arr" id="val"}
    <tr>
        <td>{$key}/{$val.id}</td>
        <td>{$val.name}</td>
        <td>{$val.gender}</td>
        <td>{$val.hobby}</td>
    </tr>
{/volist}

{volist name="arr" key="k" id="val"}
    <tr>
        <td>{$k}/{$val.id}</td>
        <td>{$val.name}</td>
        <td>{$val.gender}</td>
        <td>{$val.hobby}</td>
    </tr>
{/volist}

选择标签

switch 标签

多条件判断可以使用switch

{switch info.gender}
    {case 男}帅哥{/case}
    {case 女}美女{/case}
    {default/}不存在
{/switch}

判断条件不需加引号,解析时候会加上。

<?php switch($info['gender']): case "男": ?>帅哥<?php break; case "女": ?>美女<?php break; default: ?>不存在
<?php endswitch; ?>

也可以单个case判断多条件

{switch info.week}
    {case 1|2|3|4|5}周一到周五:工作日{/case}
    {case 0|6}周末:休息日{/case}
    {default/}不存在
{/switch}

if 标签

简单判断

{if $info.age > 17}大于 17{/if}
{if $info.age >= 18}大于等于 18{/if}

and/or

{if ($info.age > 18) or ($info.age > 16)}
    大于18 或 大于16
{/if}
{if ($info.age > 18) and ($info.age = 19)}
    大于18等于19
{/if}

并支持使用elseif/else,进行多条件判断

{if $info.age > 18}
    大于18
{elseif $info.age < 18}
    小于18
{else}
    等于18
{/if}

范围标签

in判断值是否存在或不存在指定的数据列表中。

{in name='info.age' value='10,20,30,40,50'}存在{/in}
{in name='info.age' value='10,20,30,40,50'}
    存在数据列表中
{else/}
    不存在数据列表中
{/in}

between判断值是否存在或不存在数据区间中。

{between name='info.age' value='10,50'}存在{/between}
{between name='info.age' value='10,50'}
    存在数据区间中
{else/}
    不存在数据区间中
{/between}

between 中的 value 只能是两个值,表示一个区间,第三个值会无效;

区间不但可以表达数字,也可以是字母,比如 a-z,A-Z。

原生标签

有时,如果忘记在模版中怎么进行编码时,可以采用{php}标签进行原生编码;

{php}
    for($i=0;$i<count($arr);$i++) {
        echo $arr[$i]['id'];
        echo $arr[$i]['name'];
        echo $arr[$i]['gender'];
        echo $arr[$i]['hobby'];
    }
{/php}

注意:原生编码就是 PHP 编码,不能再使用模版引擎的特殊编码方式。

总结

本文中列举了常用的循环和选择标签属性及使用方式,如果实在记不住如何使用或者觉得繁琐也可以使用php原生编码实现。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值