数据的动态菜单树结构

时间:2018-09-13 16:56:18

标签: php laravel

我需要创建一个具有动态树结构的所有菜单的数组。我使用了下面的代码。但是我只获得了父菜单。

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

0 个答案:

没有答案