ThinkPHP 多表循环遍历输出
在做项目的时候,经常会遇到分类树输出,有可能是多级,有可能是两级,用得较多的应该是两级菜单树了,比如后台的菜单管理,最近做的一个项目是两个表需要循环出来,一个是分类的,另一个是子分类内容,然后这两个分类要整合到一起做成一个菜单树,然后在另外一个页面进行调用存储。
我的天,逻辑好麻烦,好了,先上代码:
ThinkPHP双重循环遍历输出
数据表1 Cat 栏目
数据表2 In 文章
$cat= D("Cat");
$in = D("In");
$total = $cat -> select();
foreach($total as $k => $v){
$total[$k]['new'] =$in -> where(array('cat_title' => $v['cat_title'])) -> limit(10) -> select();
}//xiariboke.com
$this -> assign('total',$total);
view页面:
<volist name="total" id="v">
<dl class="noMr">
<dt class="comBg senseTle">
<a href="__APP__/part/{$v.cat_id}/" title="{$v.cat_title}" target="_blank">{$v.cat_title}</a>
</dt>
<volist name="v['new']" id="vo"> <!--<volist name="v.new" id="vo"> 的写法也行 -->
<dd>
<a class="txtellipsis"
href="__APP__/spart/{$vo.in_id}.html" target="_blank"
title="{$vo.in_title}">{$vo.in_title}</a>
<span>{$vo.in_tm}</span>
</dd>
</volist>
</dl>
</volist>
好了,如果是需要在 menu 下拉框提取的话,就把html去掉就OK了,当然,如果是菜单树的话,还需要更改太多的内容,看自己的需求了,总之,完善一下 tp 还是比较简单的。