修改 laravel-admin 菜单名称需同步更新 admin_menu 表的 title 字段并配置语言包,仅改数据库会导致显示异常;推荐使用 trans('admin.users') 动态翻译,并清除 view 与 config 缓存生效。

要修改 Laravel-Admin 的菜单名称,核心在于更新数据库中 admin_menu 表的对应记录,同时确保语言包或翻译逻辑能正确渲染——不能只改数据库,否则后台显示仍可能为旧名或英文。
确认菜单数据表与模型配置
Laravel-Admin 默认使用 admin_menu 表存储菜单项,模型类为 Encore\Admin\Auth\Database\Menu。你可以在 config/admin.php 中确认配置:
'menu_table' => 'admin_menu''menu_model' => Encore\Admin\Auth\Database\Menu::class
若项目已自定义菜单模型(如多租户场景),请先定位实际使用的模型和表名,后续操作需针对该表执行。
直接更新数据库中的菜单名称
菜单名称字段为 title(varchar 类型),位于 admin_menu 表中。可通过以下任一方式安全更新:
- 使用 phpMyAdmin 或 DBeaver 等工具,找到目标菜单行(通过
id或uri字段识别),修改title值为中文或其他所需名称 - 在 Tinker 或迁移中执行 SQL 更新:
DB::table('admin_menu')->where('id', 5)->update(['title' => '用户管理']); - 注意:若启用了多语言且菜单标题来自语言包(如
trans('admin.users')),仅改数据库无效,需同步处理语言文件
配合语言包实现动态翻译(推荐)
更规范的做法是让菜单标题走翻译系统,便于多语言支持和维护:
- 运行命令发布语言包:
php artisan vendor:publish --tag=laravel-admin-lang - 编辑
resources/lang/zh-CN/admin.php,在return []数组中添加或修改键值对:'users' => '用户管理',<br>'posts' => '文章列表',
- 在菜单配置(如
app/Admin/routes.php或控制器中)使用trans('admin.users')替代硬编码字符串 - 如果菜单是通过后台「菜单管理」界面添加的,其
title字段会直接存入数据库;此时建议将title设为语言键(如admin.users),并在视图中用trans($menu->title)渲染
刷新缓存并验证效果
数据库或语言文件修改后,必须清除视图与配置缓存才能生效:
- 执行:
php artisan view:clear - 执行:
php artisan config:clear - 若使用了 OPcache,可重启 PHP-FPM 或 Web 服务
- 登录后台,刷新左侧菜单,检查目标项是否显示新名称;打开浏览器开发者工具,查看对应 DOM 元素的文本内容是否更新











