You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Nova:如何删除Label Resources并修改默认菜单为可展开分组菜单?

嘿,我刚好折腾过Laravel Nova的菜单自定义,给你整理了一套一步步实现的方案,完全匹配你的需求:

实现步骤

1. 打造可按需展开的分组菜单

Nova允许我们完全自定义主菜单,核心是在app/Providers/NovaServiceProvider.php的boot方法里重写mainMenu逻辑。我们可以用MenuSection来创建可折叠的分组,代码示例如下:

use Illuminate\Http\Request;
use Laravel\Nova\Menu\Menu;
use Laravel\Nova\Menu\MenuSection;

public function boot()
{
    parent::boot();

    // 重写Nova主菜单
    Nova::mainMenu(function (Request $request) {
        return Menu::make()
            // 创建第一个可折叠分组:用户管理
            ->append(MenuSection::make('用户管理', [
                \App\Nova\User::class,
                \App\Nova\Role::class, // 把你需要的资源放到这个分组里
            ])->collapsable()->collapsed()) // collapsed()设置默认折叠,去掉则默认展开
            // 创建第二个可折叠分组:内容运营
            ->append(MenuSection::make('内容运营', [
                \App\Nova\Article::class,
                \App\Nova\Category::class,
            ])->collapsable())
            // 单独的菜单项(如果不需要分组可以直接加)
            ->append(\App\Nova\SystemSetting::class);
    });
}

这样配置后,菜单就会变成你想要的可展开/折叠的分组样式,完全替代默认的菜单结构。

2. 移除菜单中的“Resources”字样

默认Nova会把所有资源放到名为“Resources”的默认分组里,而我们上面自定义菜单后,已经完全替换了默认的菜单结构,所以“Resources”这个分组会自动消失。如果你的场景里还有残留,执行php artisan nova:clear-cache清除Nova缓存即可。

3. 删除Label Resources

这里分两种情况处理:

  • 如果是要隐藏某个名为“Label”的资源菜单:直接在自定义菜单里不要加入该资源,或者在对应的Nova资源类(比如App\Nova\Label.php)里添加一行:
    public static $displayInNavigation = false;
    
  • 如果是要移除资源标签里的“Resources”后缀:比如默认某个资源的复数标签是“Xxx Resources”,可以在资源类里重写pluralLabel方法:
    public static function pluralLabel()
    {
        return '你的自定义复数标签'; // 比如把“Label Resources”改成“标签”
    }
    
最后注意事项

修改完配置后,记得执行以下命令清除Nova缓存,确保菜单生效:

php artisan nova:clear-cache

内容的提问来源于stack exchange,提问作者Moum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:01:18