应选用laravel-admin 1.8.x搭配laravel 9.x,避免使用已停止维护的2.x版本;安装需按顺序执行vendor:publish和admin:install,并确保数据库连通、服务提供者注册及前端资源路径正确。

直接装 encore/laravel-admin 1.8.x 版本,别碰 2.x —— 它已停止维护,PHP 8.2+ 和 Laravel 10/11 下大概率报 Class 'Encore\Admin\Form' not found 或路由不生效。
选对版本 + 环境检查是最快落地的前提
新版不是“更快”,而是“更坑”。实测稳定组合是:Laravel 9.x + laravel-admin 1.8.*。Laravel 10/11 项目若强行上 1.8.x,需手动补兼容补丁;不如倒退一步建个 Laravel 9 项目再装:
- 新建项目:
composer create-project laravel/laravel myadmin "9.*" - 进目录后装包:
composer require encore/laravel-admin "1.8.*" - 确认
config/app.php中已注册Encore\Admin\Providers\AdminServiceProvider::class(部分 Laravel 9 安装会漏掉) - 跑
php artisan tinker,执行DB::connection()->getPdo(),连不上就别继续——admin:install会卡死或报SQLSTATE[HY000] [1045] Access denied
三步命令必须按顺序执行
vendor:publish 和 admin:install 不是可选步骤,顺序也不能颠倒。发布资源在前,安装迁移在后,否则 admin:install 找不到配置、建不了表、插不进默认用户:
- 发布配置和前端资源:
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"(生成config/admin.php和public/vendor/laravel-admin) - 执行安装:
php artisan admin:install(自动建admin_users、admin_roles等 5 张表,并插入admin/admin账号) - 若数据库连接名不是
mysql(比如叫legacy_db),得先改config/admin.php里的'database' => ['connection' => 'legacy_db'],否则迁移失败
访问后台前务必确认 URL 和权限
默认路径是 /admin,但实际前缀由 config/admin.php 的 'prefix' 决定,且受 .env 中 ADMIN_ROUTE_PREFIX 覆盖。常见问题不是装失败,而是输错地址:
- 访问
http://localhost:8000/admin(Laravel 自带php artisan serve) - 若用 Nginx/Apache,确保
public是根目录,且重写规则启用(mod_rewrite或try_files配置正确) - 登录后空白页?检查浏览器控制台是否 404 加载
public/vendor/laravel-admin/...的 JS/CSS —— 可能是public/vendor权限不足或资源未成功发布
真正卡住的点往往不在代码行数,而在数据库连通性、服务提供者注册状态、以及前端资源路径是否真实存在。装完别急着写业务,先 curl 一下 /admin/login 看返回状态码,比反复刷新页面更省时间。











