我试图为我解决这个问题,但是我找不到解决方案,如果有人可以帮助我,我将非常感激。
我正在建立一个多级动态菜单,
| 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": []
}
]