一种创建无限极分类树结构的简单方法
首先,应用渲染
顶层分类其实就是一级分类,二级分类也叫一级分类的子分类。在此基础上,子分类也可以有子分类,从而构成无限分类。
接下来,看看具体的实现代码:
1.在控制器中按字段查询,找出所有的分类信息(本分类的ID: ID值,本分类的cate_name:名称,pid:父ID,sorts:准备显示标题顺序,但不要写。)
公共函数Cate _ display(){ $ Cate=D(' Cate ');$field=array('id ',' cate_name ',' pid ',' sorts ');$ list=$ cate-all category($ field);$this-assign('list ',$ list);$ this-display();}第二,模型中的代码
在相应控制器的模型中创建两种方法
1.查询所有分类信息,调用生成分类树的方法:
公共函数all category($ field=' *){ $ data=$ this-field($ field)-select();返回$ this-tree($ data);}
2.生成分类树(使用递归、传入数据和pid[父类id]、级别[层数,用于控制显示数量],初始值为零)
公共功能树($data,$pid=0,$ level=0){ static $ tree=array();foreach($数据为$ k=$ v){ if($ v[' PID ']==$ PID){ $ v[' level ']=$ level;$ tree[]=$ v;$this-tree($data,$v['id'],$ level 1);} }返回$ tree}第三,视图文件中的代码
Div class=' form-group '标签为=' PID ' class=' col-sm-2 control-label no-padding-right '高级菜单/labeldiv class=' col-sm-6 '选择名称=' PID ' style=' width : 100%;'选项selected=' selected '值=' 0 '顶级菜单/选项volist name=' row' id=' val '选项值=' {$ val.id} '?php echo str_repeat('-',$ val[' level ']* 4);{$ val。cate _ name }/option/volust/select/div/div,完成了一个无限递归的分类树结构。总结:核心思想是模型中的递归函数。首先传入的pid默认为零,然后每次递归传入的pid就是上级的id。级别用于记录递归层数。最后,当显示视图页面时,调用内置的PHP函数str_repeat()。
以上创建无限极分类树结构的简单方法就是边肖分享的全部内容,希望能给大家一个参考和支持。
版权声明:一种创建无限极分类树结构的简单方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。