\App\Http\Controllers\AdminMaintainMenuController

菜单配置控制器

职责:菜单 CRUD 与下挂权限 CRUD 的 HTTP 入口,校验入参、编排服务、 组装统一响应,业务分别下沉 MaintainMenuService / MaintainPermissionService。 Group 属性固定文档分组(权重 30 使分组靠前),同时避免 Scramble 自动追加英文控制器名标签。

┌────────────────── 分区导航(按此顺序阅读)──────────────────┐ 分区 1 · 菜单 CRUD index / store / update / destroy 分区 2 · 权限 CRUD permissionStore / permissionUpdate / permissionDestroy └────────────────────────────────────────────────────────────┘

Summary

Methods
Properties
Constants
__construct()
index()
store()
update()
destroy()
permissionStore()
permissionUpdate()
permissionDestroy()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
$menuService
$permissionService
N/A

Properties

Methods

__construct()

__construct(\App\Services\Admin\MaintainMenuService  $menuService, \App\Services\Admin\MaintainPermissionService  $permissionService) : mixed

Parameters

\App\Services\Admin\MaintainMenuService $menuService
\App\Services\Admin\MaintainPermissionService $permissionService

Returns

mixed —

index()

index(\Illuminate\Http\Request  $request) : \Illuminate\Http\JsonResponse

菜单树

返回完整菜单树:search 按菜单名称模糊搜索,type/status 按类型与 状态筛选,with_permissions=1 时每级节点附带下挂权限列表。

Parameters

\Illuminate\Http\Request $request

Returns

\Illuminate\Http\JsonResponse —

store()

store(\App\Http\Requests\Admin\MaintainMenuRequest  $request) : \Illuminate\Http\JsonResponse

创建菜单

按类型约束层级:目录与容器不可导航,路径与组件字段留空; 父级存在性、类型层级与父子类型兼容由 Service 校验。

Parameters

\App\Http\Requests\Admin\MaintainMenuRequest $request

Returns

\Illuminate\Http\JsonResponse —

update()

update(\App\Http\Requests\Admin\MaintainMenuRequest  $request, \App\Models\SysMenu  $menu) : \Illuminate\Http\JsonResponse

更新菜单

支持类型与父级调整:类型变更按层级规则校验,目录/容器类菜单 的路径与组件字段强制清空,防裸 API 局部更新残留脏数据。

Parameters

\App\Http\Requests\Admin\MaintainMenuRequest $request
\App\Models\SysMenu $menu

Returns

\Illuminate\Http\JsonResponse —

destroy()

destroy(\App\Models\SysMenu  $menu) : \Illuminate\Http\JsonResponse

删除菜单

级联删除该菜单、全部后代菜单及下挂权限,角色绑定同步清理, 全量用户权限与菜单缓存失效。

Parameters

\App\Models\SysMenu $menu

Returns

\Illuminate\Http\JsonResponse —

permissionStore()

permissionStore(\App\Http\Requests\Admin\MaintainPermissionRequest  $request) : \Illuminate\Http\JsonResponse

创建权限

在菜单下新建权限:类型区分菜单/按钮/接口三级, 所属菜单是否允许挂权限由 Service 校验。

Parameters

\App\Http\Requests\Admin\MaintainPermissionRequest $request

Returns

\Illuminate\Http\JsonResponse —

permissionUpdate()

permissionUpdate(\App\Http\Requests\Admin\MaintainPermissionRequest  $request, \App\Models\SysPermission  $permission) : \Illuminate\Http\JsonResponse

更新权限

更新权限类型、编码、名称、排序与状态;调整所属菜单时 校验新菜单允许挂权限。

Parameters

\App\Http\Requests\Admin\MaintainPermissionRequest $request
\App\Models\SysPermission $permission

Returns

\Illuminate\Http\JsonResponse —

permissionDestroy()

permissionDestroy(\App\Models\SysPermission  $permission) : \Illuminate\Http\JsonResponse

删除权限

级联删除角色绑定记录,子权限提升为顶级防悬空引用, 用户权限与菜单缓存全量失效。

Parameters

\App\Models\SysPermission $permission

Returns

\Illuminate\Http\JsonResponse —