在TP5中有两个嵌套的volist循环,采用的是关联数组,怎样在循环内部分别获取外层volist的Key和内层volist的key值?

解决方法:采用tp5中的ASSIGN标签即可,ASSIGN标签用于在模板文件中定义变量,具体用法如下:


{volist name='$list' id='user' key='k'}
{assign name="etype" value="$key" /}
{volist name='user' id='u'}
    <tr>
        <td> {$u.id} </td>
        <td> {$u.name} </td>
        <td> {$u.department_id} </td>
        <td> {volist name="Think.config.USER_TYPE_LIST" id="utl"}{eq name="u.type" value="$key"}{$utl}{/eq}{/volist}</td>
        <td> <a href="{:url('index/exam/exam',['eid'=>$exam.id,'toid'=>$u.id,'etype'=>$etype])}">评分</a> </td>
    </tr>
{/volist}
{/volist}

上述代码中,通过ASSIGN标签定义了一个模板变量etype,值为外层volist数组中的原始key。在内层volist中通过$type即可调用,需要区别的是内层中的$key实际上是内层volist的数组原始key。

这样就可以在循环内部分别获取外层volist的Key和内层volist的key值