thinkphp无限级分类

在搞项目时遇到的无限级分类思路

分类信息表:



模型里的方法:

	public function reSort($data, $parent_id=0, $level=0){
		//存排序好之后的数据
		static $ret = array();
		foreach ($data as $k => $v){
			if($v['parent_id'] == $parent_id){
				$v['level'] = $level;
				$ret[] = $v;
				// 把这条 记录从原数组中删除掉,下次再循环时不用再循环判断这条记录
				unset($data[$k]);
				// 找当前这条记录的子类
				$this->reSort($data, $v['id'], $level+1);
			}
		}
		return $ret;
	}

	public function search(){
		$data = $this->select();
		$data = $this->reSort($data);
		return array(
			'page' => '',
			'data' => $data,
		);
	}


控制器里的方法:

	public function lst(){
		$model = D('Category');
		$data = $model->search();
		$this->assign('data', $data['data']);
		$this->assign('page', $data['page']);
		$this->display();
	}

视图:

            <?php foreach ($data as $k => $v): ?>
            <tr level="<?php echo $v['level']; ?>">
            	<td align="center"><?php echo $v['id']; ?></td>
                <td> <a class="expend" href="javascript:void(0);">[-]</a> <?php echo str_repeat('-', $v['level'] * 2) . $v['cat_name']; ?></td>
                <td align="center">
	                <a href="__CONTROLLER__/save?id=<?php echo $v['id']; ?>" title="编辑">编辑</a> |
	                <a οnclick="return confirm('确定要删除吗?');" href="__CONTROLLER__/del?id=<?php echo $v['id']; ?>" title="编辑">移除</a> 
                </td>
            </tr>
            <?php endforeach; ?>  


结果为:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值