insertMenu($menu, 0); } } /** * 递归插入菜单 */ private function insertMenu(array $menu, int|string $pid): void { $menuModel = new Menu(); $menuModel->id = Snowflake::generate(); $menuModel->pid = $pid; $menuModel->title = $menu['title'] ?? ''; $menuModel->app = $menu['app'] ?? 'admin'; $menuModel->code = $menu['code'] ?? ''; $menuModel->icon = $menu['icon'] ?? ''; $menuModel->sort = $menu['sort'] ?? 0; $menuModel->type = $menu['type'] ?? 1; $menuModel->is_show = $menu['is_show'] ?? 1; $menuModel->is_link = $menu['is_link'] ?? 0; $menuModel->is_cache = $menu['is_cache'] ?? 0; $menuModel->path = $menu['path'] ?? ''; $menuModel->component = $menu['component'] ?? ''; $menuModel->redirect = $menu['redirect'] ?? ''; $menuModel->enabled = $menu['enabled'] ?? 1; $menuModel->save(); // 递归插入子菜单 if (!empty($menu['children'])) { foreach ($menu['children'] as $child) { $this->insertMenu($child, $menuModel->id); } } } }