laravel-admin是laravel 5.5后台开发的事实标准,因其封装了路由、权限、菜单、数据表格等完整逻辑,避免手动拼接adminlte或layuiadmin带来的维护高、权限残缺、中文支持差等问题;安装须严格按顺序执行:先composer require指定1.5.*版本,再vendor:publish生成配置与迁移,最后admin:install完成数据库初始化与管理员创建。

直接用 laravel-admin 是最快、最稳的路径,尤其对 Laravel 5.5。它不是“可选方案”,而是事实标准——其他方式(如手搭 AdminLTE 或集成 layuiadmin)要么维护成本高,要么权限模型残缺,要么中文支持差。
为什么优先选 laravel-admin 而不是自己拼模板
自己引入 AdminLTE 或 layuiadmin,本质是把前端 UI 和后端逻辑割裂:路由要手动写、权限要自己判、菜单要硬编码、数据表格得反复写 JS 渲染逻辑。而 laravel-admin 把这些封装成 PHP DSL,比如一行代码就能生成带搜索、分页、操作列的列表页:Grid::make(new Post, function (Grid $grid) { $grid->column('title'); $grid->column('created_at'); });。它底层复用 Laravel 的认证、Eloquent、中间件机制,不是黑盒。
- 不兼容 Laravel 5.5 的“伪后台”项目(如某些老版 yicms)会卡在
php artisan migrate阶段,报错SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long—— 这是因为 MySQL 5.6 默认引擎限制索引长度,必须在AppServiceProvider的boot()里加Schema::defaultStringLength(191); -
laravel-admin的菜单数据存在admin_menu表里,默认字段是英文(如title值为Dashboard),汉化不能只改数据库,得在config/admin.php中配置'menu' => ['enable' => true, 'show' => true]后,再覆盖resources/lang/zh-CN/admin.php里的翻译项
安装时最容易卡住的三个命令顺序
顺序错了,php artisan admin:install 会直接失败,提示 Class 'Encore\Admin\Providers\AdminServiceProvider' not found 或数据库表不存在。
- 先执行
composer require encore/laravel-admin "1.5.*"(注意版本号,Laravel 5.5 不支持 2.x) - 再运行
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"—— 这步生成config/admin.php和迁移文件,没它后续全白干 - 最后才是
php artisan admin:install,它会自动执行migrate并插入初始用户(账号admin,密码admin)
登录后进不去 / 权限 403 的真实原因
不是密码错,也不是路由没配,而是 Laravel 的 guard 和 provider 没对齐。laravel-admin 默认用 admin guard,但如果你之前改过 config/auth.php 里的 guards 或 providers,或者手动加过 admin guard(比如为了前后台分离),就会冲突。
- 检查
config/auth.php中是否有多余的'admin'guard 定义,删掉——laravel-admin自己管理这套,不需要你额外配 - 确认
config/admin.php里的'guard' => 'admin'没被注释或改成别的值 - 如果用了 Redis 缓存权限(如某些 RBAC 扩展),清空缓存:
php artisan cache:clear && php artisan config:clear,否则旧权限规则会一直生效
真正麻烦的从来不是装上,而是菜单嵌套层级深了之后,admin_menu 表里 parent_id 和 order 字段的手动维护;还有当你要对接已有管理员表(比如叫 managers 而非 admins)时,必须重写 AdminUser 模型并修改 config/admin.php 中的 'model' => App\User::class —— 这些细节不查源码根本绕不过去。











