使用thinkphp5怎么实现一个无限级分类

  介绍

使用thinkphp5怎么实现一个无限级分类?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

php有什么用

php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因为php是开源的,从而使php经得久不衰。

<强>当前的getCate方法,有三个参数:

第一个是$ pid是父类的id,默认为0,表示从顶级开始查起。

第二个参数是返回的查询结果,我们放在一个数组中返回,注意,这个变量是引入方式传入的。

<强>在递归函数中,返回结果有三种方式:

第一种就是大家比较熟悉的,使用全局变量_GLOBALS美元[],这个方法有副作用,我们不用它;

第二种方式也不错,是在函数中用静态关键字,声明一个静态变量,它可以将每一次的递归执行结果进行累计,最后再返回,非常好理解,但占用资源过多,执行效率低;

第三种,就是采用引用参数的方式,来返回结果,这也是目前主流的技术,尽管理解起来有难度,但执行效率是最高的,我们要玩,就玩大的,所以这里,我们就直接采用引用,来返回查询结果。

第三个参数,可以没有,它是用来设置一下分类之间的层次显示的,可以让结果看上去更直观清晰。

& lt; php ?   ,   namespace 应用\ admin \模型;   ,   use 认为\集合;   use 认为\模式;   ,   class  Category  extends 模型   {   ,//创建一个静态方法getCate,来获取分类信息   ,/* *   *,才能@param  int  $ pid:,当前分类的父id   *,才能@param  array 结果:美元引用返回值   *,才能@param  int  $空白:设置分类之间的显示提示   ,*/,public  static  function  getCate ($ pid=0,,,结果=[],美元,美元空白=0)   ,{//1 .分才能类表查询:$ pid   时间=美元才能res 自我:所有((& # 39;pid # 39;=祝辞$ pid]);   ,   ,//2。自定义分类名称前面的提示信息   美元才能blank  +=, 2;   ,//3。才能遍历分类表   foreach 才能;(res 美元;as  key 美元;=祝辞,美元值),{   ,   ,,//3 - 1自定义分类名称的显示格式   ,才能cate_name 美元;=,& # 39;|——& # 39;。美元价值→cate_name;   ,,美元价值→cate_name =,函数(& # 39;,,& # 39;,空白美元)。cate_name美元;   ,   ,,//3 - 2将查询到的当前记录保存到结果中美元的结果   ,,结果[],美元=,美元价值;   ,   ,,//3 - 3关键:将当前记录的id,做为下一级分类的父id、pid美元,继续递归调用本方法   ,才能自我:getCate(美元价值→id,因此,美元,美元空白);   ,,}   ,//4 .才能返回查询结果,调用结果集类制造方法打包当前结果,转为二维数组返回   return 才能;收集:使(结果)→toArray ();   ,}   }

控制器中调用代码:

public  function 编辑(Request  $请求)   {//1。获取一下分类id   美元,美元cate_id =, request →,参数(& # 39;id # 39;);   ,//2。查询要更新的数据   ,cate_now 美元;=,CategoryModel:获得(cate_id美元);   ,//3。递归查询所有的分类信息   ,cate_level 美元;=,CategoryModel: getCate ();   ,//4。模板赋值   ,美元却;能够→,view →,分配(& # 39;cate_now& # 39;,, cate_now美元);   ,美元却;能够→,view →,分配(& # 39;cate_level& # 39;,, cate_level美元);   ,   ,//5。渲染模板   ,return  $却;能够→,view →,获取(& # 39;category_edit& # 39;);   }

看完上述内容,你们掌握使用thinkphp5怎么实现一个无限级分类的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

使用thinkphp5怎么实现一个无限级分类