Files
2026-03-26 20:22:34 +08:00

2.6 KiB
Raw Permalink Blame History

name, description
name description
ulthon-admin-menu-cli 解释并指导后台菜单system_menu与 admin:menu:* 命令的使用方式。需要导出菜单、通过命令行创建/更新/删除菜单、或排查菜单字段映射pid/href/auth_node时调用。

菜单管理admin:menu:* CLI

何时调用

  • 需要导出当前系统菜单数据,用于备份/迁移/对比。
  • 需要在不进入后台页面的情况下,通过命令行创建/更新/删除菜单。
  • 需要排查菜单字段映射:pid/href/auth_node 与命令参数 parent-id/path/node 的对应关系。
  • 需要脚本化输出JSON对接自动化运维/测试(仅导出命令支持)。

命令清单

1) 导出菜单

php think admin:menu:export

常用参数:

  • --format=jsonJSON 输出(含 count/exported_at
  • --output=<文件路径>把导出的菜单数组写入文件JSON

示例:

php think admin:menu:export --format=json
php think admin:menu:export --output=runtime/agent/menu_export.json
php think admin:menu:export --output=runtime/agent/menu_export.json --format=json

2) 创建菜单(会写入数据库)

php think admin:menu:create --title="测试菜单" --path="demo.index/index" --icon="fa fa-list" --parent-id=0 --sort=100

3) 更新菜单(会写入数据库)

php think admin:menu:update --id=123 --title="新标题" --path="demo.index/index" --icon="fa fa-list" --parent-id=0 --sort=100

说明:

  • --id 必填;其余参数不传则不更新该字段。
  • --path 更新的是数据库字段 href
  • --parent-id 更新的是数据库字段 pid

4) 删除菜单(会写入数据库,软删除)

php think admin:menu:delete --id=123

说明:

  • 若存在子菜单会拒绝删除(需先删除子菜单)。

字段映射速查

  • --parent-idsystem_menu.pid
  • --pathsystem_menu.href
  • --nodesystem_menu.auth_node

典型工作流

工作流 A备份菜单到文件

php think admin:menu:export --output=runtime/agent/menu_export.json

工作流 B创建 → 更新 → 删除(用于验证命令链路)

php think admin:menu:create --title="CLI测试菜单" --path="test.cli/index" --parent-id=0
php think admin:menu:update --id=<上一步返回的id> --title="CLI测试菜单_改"
php think admin:menu:delete --id=<上一步返回的id>

注意事项

  • create/update/delete 会实际修改数据库,建议在测试环境或确认无风险后执行。
  • 导出默认过滤 delete_time=0(只导出未删除菜单)。