我需要创建一个具有动态树结构的所有菜单的数组。我使用了下面的代码。但是我只获得了父菜单。
public function menuTree()
{
$menus = Menu::whereStatus(1)
->whereIsAnchor(1)
//->where('parent_id','=',0)
->orderBy('rank','asc')
->get()->toArray();
$result=$this->generateMenuLists($menus, $parentId=0, $indent=0);
return response()->json($result, 200);
}
public function generateMenuLists(array $elements, $parentId = 0,$indent = 0,$data='')
{
if (!is_array($data)) {
$data = array();
foreach ($elements as $key => $element) {
if ($element['parent_id'] == $parentId) {
$data[] = array($indent."--".$element['title']);
$data = $this->generateMenuLists($elements, $element['id'],$indent + 1,$data);
}
}
}
return $data;
}