Мне нужно создать меню в формате ниже json.Ниже моя таблица, из которой я получаю данные: -
id title parent_id url
5 Dashboard 0 /dashboard
6 Settings 0 /home
7 Menu 6 /menu
8 Menu Assign 6 /menu-assign
9 Test 5 /test
10 Demo 9 /demo
Мой ожидаемый формат указан ниже.
public tail = [
{
name: 'Dashboard',
link: '/dashboard',
child: [
{
name: 'Test',
link: '/test',
child: [
{
name: 'Demo',
link: '/demo',
}
]
},
]
},
{
name: 'Settings',
link: '/settings',
child: [
{
name: 'Menu',
link: '/menu',
child: []
},
{
name: 'Menu Assign',
link: '/menu-assign',
child: []
}
]
}
];
Я попробовал приведенный ниже код
public function menuTree($parent=0,$level=0){
Global $menuArr;
$menus = Menu::where('parent_id','=',$parent)->get();
foreach($menus as $allMenu){
$menuArr[$allMenu->id][$level] = str_repeat("-", $level).$allMenu->title;
$level++;
$this->menuTree($allMenu->id,$level);
$level--;
}
return $menuArr;
}