Thinkphp5实现无限极分类

商品分类页显示   主要调用common里的函数:在控制器调用getlevel()的方法,在递归方法里用到的函数有:str_repeat()   array_merge()在控制器controller先赋值  
public function index(){
    $data = db("数据表")->select();
    return $this->fetch("",['data'=>$data]);
}
    // res 要整合的数据

    // pid 代表父级id

    // level 代表替换的次数

    // html 代表替换的标识公共函数:
公共函数库递归写法

function getlevel($data,$pid=0,$level=0,$html='----->'){
    $arr = [];
    foreach($data as $k => $v){
        if($v['parent_id'] == $pid){
            $v['level'] = $level;

    $v['level'] = str_repeat($html, $level);

    $arr[] =$v;

    $arr = array_merge($arr,getlevel($data,$v['cat_id'],$level+1));

         }
     }
    return $arr;
}


 

分类遍历:

getlevel方法一共有四个参数:  先定义一个空数组1. 把整个的数据遍历一下,2.判断父级id  3.把level字段替换标识    4.放在空数组里面 $arr;   5.合并array_merge()6.return返回   
Thinkphp5实现无限极分类
 

Thinkphp5实现无限极分类


添加分类 

public function addcategory(){

$res = db("category")->select();

$res = getlevel($res);

return $this->fetch('',['res'=>$res]);

}

public function add_cate(){

$data = input("post.");

if(empty($data)){

        $this->error("添加失败");

}else{

$res = db("category")->insert($data);

$this->success("添加成功");

}

return $res;

} 


view视图遍历:
Thinkphp5实现无限极分类
 

Thinkphp5实现无限极分类