首先数据库得存在pid和level两个字段,pid是用于连接父子关系的,level是用来确定层级的
先封装一个递归类在common里。也就是公共控制器,这是需要调用的
function get_cate_list($list,$pid=0,$level=0) {
static $tree = array();//设定一个静态变量
foreach($list as $row) { //循环
if($row['pid']==$pid) {
$row['level'] = $level;
$tree[] = $row;
get_cate_list($list, $row['id'], $level + 1); //再次调用
}
}
return $tree; //返回
}
控制器中,需要先得到数据
public function show(){
$data=Type::select(); //得到数据
$data=(new Collection($data))->toArray(); //转为普通数组
$list=get_cate_list($data); //调用公共方法后,得到递归后的数组
return view('show',['list'=>$list]); //输出数据
}
输出后就是这样