Thinkphp无限级分类代码
author:一佰互联 2019-04-27   click:167

本篇就一点一点教大家写一个无限级分类出来,其实掌握一个知识,最主要的是要掌握无限级分类的逻辑,那么写起来就很容易的多了。首先看数据库表:xp_cate

控制器:CateAction.class.php

<?phpclass 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

<?phpclass CateModel extends Model{//对应数据库中的表xp_cateprotected $_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="/Article/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"]">  </for>{$vo["name"]}</option></volist></select><br />新的栏目名称:<input type="text" name="name" /><br /><input type="submit" value="添加栏目" /></form>

显示结果如下:

有没有掌握无限级分类的逻辑,上文分享的thinkphp无限级分类代码,希望对大家的学习有所帮助。