Thinkphp无限级分类代码 |
本篇就一点一点教大家写一个无限级分类出来,其实掌握一个知识,最主要的是要掌握无限级分类的逻辑,那么写起来就很容易的多了 。 控制器: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="/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无限级分类代码,希望对大家的学习有所帮助 。 |