循环遍历树形栏目

  • 作者:admin
  • 时间:2019-08-28 23:40:40
  • 263人已阅读

我们在网站开发时,很多时候都会用到树形栏目。具体怎么实现,我来分享一下吧。

实现的思路大致是:采用递归的方式,先查询出所有的顶级栏目,根据顶级栏目id递归循环遍历子栏目,并给它们加上空格或其他符号来显示层次关系。

public static function getCate($pid = 0, &$result = [], $blank = -4){
   // 1、分类表查询
   $res = self::all(['pid'=>$pid]);
   // 2、自定义分类层次显示关系
   $blank += 4;
   // 3、遍历分类表
   foreach ($res as $key => $value){
       $cate_name = $value->cate_name;
       $value->cate_name = str_repeat('-',$blank).$cate_name;
       $result[] = $value;
       self::getCate($value->id,$result,$blank);
   }
   // 4、返回分类数组
   return Collection::make($result)->toArray();
}