牛骨文教育服务平台(让学习变的简单)
博文笔记

laravel通用版分类递归,多级

创建时间:2017-08-31 投稿人: 浏览次数:1118
//我是把这个多级递归放在了model,,其实放哪里都行,,只要你控制器能够调用到,,但一般我觉得还是放在通用方法里面比较好吧
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;
}

//在控制器调用这个方法就好了

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

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。