как указать уровень вывода вложенности меню, например нужно вывести меню 3-х уровней:
Категория
Подкатегория
Подкатегория
$query = DB::table('categories as c')
->leftJoin('category_descriptions as cd','cd.category_id','=','c.id')
->select('c.*','cd.name','cd.slug')
->where('cd.language_id','=', 1)->get()->toArray();
$category_list = array();
foreach ($query as $category) {
$category_list[$category->id] = (array)$category;
}
return $this->getTreeCategories($category_list,4);
public function getTreeCategories($dataset, $level){
$tree = array();
foreach ($dataset as $id => &$node) {
//Если нет вложений
if (!$node['parent']){
$tree[$id] = &$node;
}else{
//Если есть потомки то перебераем массив
$dataset[$node['parent']]['childrens'][$id] = &$node;
}
}
return $tree;
}