今天在 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 標簽來直接書寫代碼。