thinkphp 将后台的cat表在前台分类展示出来

本文介绍如何使用ThinkPHP框架将后台的catelist表数据在前台进行分类展示。通过控制器层的处理和HTML层的设计,详细阐述了实现前台分类显示的步骤,并在home前台控制器中进行了具体操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先创造一个后台的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>
然后后台的无限级分类数据就被调到前台分类展示了



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值