Laravel动态多级下拉菜单

时间:2019-03-28 14:03:36

标签: php laravel laravel-5

我试图为我解决这个问题,但是我找不到解决方案,如果有人可以帮助我,我将非常感激。

我正在建立一个多级动态菜单,

| id | parend_id | name     | url                 |

| 1  |     0     | Level 1  | /level_one          |

| 2  |     1     | Sublevel | /level_one/sublevel |

| 3  |     0     | Level 2  | /level_two          | 

型号

在我的模型中,有两个递归函数可以帮助我生成树:

public function children() {
    return $this->hasMany('App\Menus', 'parent_id', 'id');
}

public static function tree() {
    return static::with(implode('.', array_fill(0, 100, 'children')))->where('parent_id', '=', '0')->get();
}

从控制器中,我只是创建对象并调用函数,并且一切正常,但是我尝试解决的问题是,当某个级别不再具有子级时,它不会显示我的空数组,而我不能这样做不能在对象内部打印

$components = new Component;
try {
     $menu = $components->tree();
} catch (Exception $e) {}
return response()->json($menu);

我明白了:

[
    {
        "id": 1,
        "parent_id": 0,
        "name": "Level 1",
        "url": "/level_one",
        "children": [
            {
                "id": 2,
                "parent_id": 1,
                "name": "Sublevel",
                "url": "/level_one/suvlevel",
                "children": []
            },
         ]
    },
    {
        "id": 3,
        "parent_id": 0,
        "name": "Level 2",
        "url": "/level_two",
        "children": []
    }
]

0 个答案:

没有答案