laravel通用版分类递归,多级

1.我是把这个多级递归放在了model,你可以放在service层,或其他,只要你控制器能够调用到 

public function tree()
{
    $categorys = $this->all();
    return $this->getTree($categorys,'cate_name','cate_id','cate_pid');
}
//一般传进三个参数。默认P_id=0;
public function getTree($data,$field_name,$field_id='id',$field_pid='pid',$pid=0)
{
    $arr = array();
    foreach ($data as $k=>$v){
        if($v->$field_pid==$pid){
            $data[$k]["_".$field_name] = $data[$k][$field_name];
            $arr[] = $data[$k];
            foreach ($data as $m=>$n){
                if($n->$field_pid == $v->$field_id){
                    $data[$m]["_".$field_name] = '├─ '.$data[$m][$field_name];
                    $arr[] = $data[$m];
                }
            }
        }
    }
    return $arr;
}

2.在控制器里面调用tree方法 

 public function index()
    {
         $categorys = (new Category)->tree();
        return view('admin.category.index')->with('data',$categorys);
    }

猜你喜欢

转载自blog.csdn.net/cfun_goodmorning/article/details/77745304