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);
}