Skip to main content
 Web开发网 » 站长学院 » Thinkphp教程

Thinkphp实现无限极分类(转载)

2021年08月21日6870百度已收录

  无限级分类太重要了。可是我就是不会写,怎么办?

  本篇就一点一点教大家写一个无限级分类出来。

  最主要的是要掌握无限极分类的逻辑,那么写起来就很容易的多了

  首先看数据库表:xp_cate

  控制器: CateAction.class.php

  <?php

  class CateAction extends Action{

  function index(){

  $cate=M('Cate');

  $list=$cate->field("id,name,pid,path,concat(path,'-',id) as bpath")->order('bpath')->select();

  foreach($list as $key=>$value){

  $list[$key]['count']=count(explode('-',$value['bpath']));

  $this->assign('alist',$list);

  $this->display();

  }//添加栏目

  function add(){

  $cate=new CateModel();if($vo=$cate->create()){

  if($cate->add()){

  $this->success('添加栏目成功');

  }else{

  $this->error('添加栏目失败');

  }else{

  $this->error($cate->getError());

  ?>

  模型:CateModel.class.php

  <?php

  class CateModel extends Model{//对应数据库中的表xp_cate

  protected $_auto=array(

  array('path','tclm',3,'callback'),

  );function tclm(){

  $pid=isset($_POST['pid'])?(int)$_POST['pid']:0;

  echo ($pid);

  if($pid==0){

  $data=0;

  }else{

  $list=$this->where("id=$pid")->find();

  $data=$list['path'].'-'.$list['id'];//子类的path为父类的path加上父类的id

  return $data;

  ?>

  模板:index.html

  <form action="__URL__/add" method="post">

  请选择父级栏目:<select name="pid" size="20">

  <option value="0">根栏目</option>

  <volist name="alist" id="vo">

  <option value="{$vo['id']}">

  <for start="0" end="$vo['count']">

  &nbsp; 

  </for>

  {$vo['name']}

  </option>

  </volist>

  </select><br />

  新的栏目名称:<input type="text" name="name" /><br />

  <input type="submit" value="添加栏目" />

  </form>

  显示结果如下:

  转自松林's blog

评论列表暂无评论
发表评论
微信