laravel通用版分类递归,多级
//我是把这个多级递归放在了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);
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: PHP无限级分类(嵌套集合模型)
- 下一篇: php无限分类 树状菜单经典代码
