管理员是All权限,模块也enabled,直接访问Controller还能进,但左侧菜单没有。先对照menu.xml里的resource和acl.xml的resource id,一处大小写或Vendor_Module拼错,菜单就会被过滤。
grep -R "Vendor_Module::" app/code/Vendor/Module/etc -n bin/magento module:status Vendor_Module bin/magento cache:clean config layout
menu项挂在某个parent下面时,当前角色还要能看到父资源。自定义父菜单如果resource引用另一个模块,而该模块未启用,也可能整棵消失。
Controller权限是另一处
Admin Controller的ADMIN_RESOURCE应指向相同或更细的ACL节点。菜单能显示但点击Access denied,通常就是两边不一致。All权限测试后,再建一个只授权该资源的最小角色验证。
如果配置都对,检查routes.xml的area是否在adminhtml、frontName是否冲突,以及setup:di:compile有没有报类错误。别用删除admin_user会话表这种大动作处理一个拼写错误。

