情景:tp5.0框架,有时我们需要在第二层volist,获取第一层的volist的key的值,如何获取呢?应该不少的朋友都不知怎么获取吧。
TP5中有两个嵌套的volist循环,采用的是关联数组,怎样在循环内部分别获取外层volist的Key和内层volist的key值?
解决方法:在tp5中的ASSIGN标签
ASSIGN标签用于在模板文件中定义变量
{volist name='$data' id='user' key='k'}
{assign name="etype" value="$key" /}
{volist name='user' id='u'}
<tr>
<td> {$u.user_id} </td>
<td> {$u.name} </td>
<td>
{volist name="user_type" id="ut"}
{eq name="u.type" value="$key"}{$ut}
{/eq}
{/volist}
</td>
<td>
<a href="{:url('index/exam/exam',['id'=>$exam.id])}">用户</a>
</td>
</tr>
{/volist}
{/volist}
通过ASSIGN标签定义了一个模板变量etype,值为外层volist数组中的原始key。在内层volist中通过$type即可调用,需要区别的是内层中的$key实际上是内层volist的数组原始key。
以上的思路有点像赋值起来,给后者使用。