今天在 ThinkPHP 3.2.2 的试图模板中使用多重循环,用来把相应类别下对应的文章都依次循环出来,但是无论如何只能循环出类别,类别下的文章无法循环出,( 错误 ) 代码如下:
<volist name="list" id="vo"> <tr class='{$vo.help_category_id}'> <td>{$vo.help_category_id}</td> <td class='display_name'>{$vo.display_name}</td> <td></td> <td></td> <td> <span class='addTopic'> <a href='#' onclick="return false">新增内容</a> </span> <span class='cate_enabled state{$vo.is_enabled}'> <a href='#' onclick="return false"><if condition="$vo['is_enabled'] eq 1">暂停<else/>启用</if></a> </span> <span class=''> <a href='#'>删除</a> </span> </td> </tr> <!--循环文章--> <volist name="topic_list" id="topic_vo"> <if condition="$topic_vo.help_category_id eq $vo.help_category_id"> <tr> <td>{$topic_vo.topic_id}</td> <td></td> <td>{$topic_vo.title}</td> <td>{$topic_vo.priority}</td> <td><span>编辑</span> <span>暂停</span> <span>删除</span></td> </tr> </if> </volist> </volist>
红色放大字体的代码即为错误代码。要正确取出数据,应该红色将代码改成:
<if condition="$topic_vo['help_category_id'] eq $vo['help_category_id']">
附:
【ThinkPHP3.2.2 完全开发手册 CHM 2014-04-14】:
由于 if 标签的 condition 属性里面基本上使用的是 php 语法,尽可能使用判断标签和 Switch 标签会更加简洁,原则上来说,能够用 switch 和比较标签解决的尽量不用 if 标签完成。因为 switch 和比较标签可以使用变量调节器和系统变量。如果某些特殊的要求下面,IF 标签仍然无法满足要求的话,可以使用原生 php 代码或者 PHP 标签来直接书写代码。