首先创造一个后台的catelist表
控制器层如下
<?php
namespace Admin\Controller;
use Think\Controller;
class CatController extends Controller {
public function catelist(){
$catModel=D('Cat');
$this->assign('catlist',$catModel->gettree());
$this->display();
}
public function cateedit(){
$catModel=D('Cat');
$this->assign('gettree',$catModel->gettree());
$this->assign('catinfo',$catModel->find(I('cat_id')));
$this->display();
}
public function del(){
$catModel->delete(I('get.cat_id'));
$this->redirect('admin/cat/catelist');
}
Model层如下
<?php
namespace Admin\Model;
use Think\Model;
class CatModel extends Model{
public function gettree($p=0,$lv=0){
$t=array();
foreach($this->select()as $k=>$v){
if($v['parent_id']==$p){
$v['lv']=$lv;
$t[]=$v;
$t=array_merge($t,$this->gettree($v['cat_id'],$lv+1));//合并数组
}
}
return $t;
}
}
?>
html层
<foreach name="catlist" item="cat">
<tr align="center" class="0" id="0_1" id = 'tr_1'>
<td align="left" class="first-cell" style = 'padding-left="0"'>
<img src="__PUBLIC__/Admin/images/menu_minus.gif" id="icon_0_1" width="9" height="9" border="0" style="margin-left:{$cat['lv']*2}em" />
<span><a href="#" >{$cat.cat_name}</a></span>
</td>
<td width="10%">0</td>
<td width="10%"><span> </span></td>
<td width="10%"><img src="__PUBLIC__/Admin/images/no.gif" /></td>
<td width="10%"><img src="__PUBLIC__/Admin/images/yes.gif" /></td>
<td><span>5</span></td>
<td width="10%" align="right"><span>50</span></td>
<td width="24%" align="center">
<a href="#">转移商品</a> |
<a href="{:U('admin/cat/cateedit',array('cat_id'=>$cat['cat_id']))}">编辑</a> |
<a href="{:U('admin/cat/catedel',array('cat_id'=>$cat['cat_id']))}" title="移除">移除</a>
</td>
</tr>
</foreach>
然后就能搭建如下后台catelist表
接着如何搭建前台表如下样式呢
此时我们去home前台操作
控制器层
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$catModel=D('Admin/Cat');//跨模块调用catmodel
$this->assign('cattree',$catModel->gettree());
$this->display();
}
}
html层
<foreach name="cattree" item='v'>
<if condition="$v.lv eq 0">
<dl>
<dt><a href="">{$v.cat_name}</a></dt>
<dd class="clearfix">
<foreach name="cattree" item="s">
<if condition="$v[cat_id] eq $s[parent_id]">
<p class=""><a href="{:U('Home/cat/cat',array('cat_id'=>$s[cat_id]))}" title="CDMA手机" class="txtdot">{$s.cat_name}</a></p>
</if>
</foreach>
</dd>
</dl>
</if>
</foreach>
然后后台的无限级分类数据就被调到前台分类展示了