最稳组合是laravel-admin 1.8.x+laravel 9.x或filament 3.3++laravel 11;laravel-admin需注册service provider并确保数据库连通,filament需手动添加filament::routes()且路径不能以斜杠开头。

别直接装最新版 laravel-admin 或 Filament,大概率报错或白屏——当前(2026年5月)最稳的组合是 laravel-admin 1.8.x + Laravel 9.x,或 Filament 3.3+ + Laravel 11。选错版本,光解决依赖冲突就能耗掉半天。
laravel-admin 安装失败:Class 'Encore\Admin\Form' not found 怎么办
这不是代码写错了,是框架根本没加载进来。核心原因只有两个:Service Provider 没注册,或 admin:install 命令执行前数据库不通。
- 检查
config/app.php的providers数组里是否真有Encore\Admin\Providers\AdminServiceProvider::class,别只看注释、别拼错命名空间 - 运行
php artisan tinker,输入DB::connection()->getPdo()—— 如果报错,说明.env里的DB_*配置无效,admin:install必然卡住或失败 -
admin:install默认用mysql连接;如果你改过默认连接名(比如叫legacy_db),必须提前在config/admin.php里设'database' => ['connection' => 'legacy_db'] - 安装成功后默认账号密码是
admin/admin,但密码字段是 bcrypt 加密的,别手动改数据库值——要用php artisan admin:make-user或代码里调Hash::make()
Filament 路由 404 或页面空白
Filament 不会自动往 routes/web.php 里写路由,也不会检查你有没有配 APP_URL 或重写规则。它只生成文件、发配置、改 AppServiceProvider,剩下全靠你手动补。
PHP中文网提供Laravel 13.2.0版本下载,Laravel框架 是基于 PHP 8.3+ 的高性能框架,官方推荐通过 Composer 安装。它内置 AI SDK、JSON:API Resources 及原生向量搜索,支持属性驱动开发与队列路由,大幅提升开发效率。相比旧版,13.2.0 优化了缓存 TTL 管理与实时通信,无需 Redis 即可横向扩展。作为现代 Web 开发首选,它兼顾安全与极速体验,助您快速构建企业级应用。
- 确认是否漏了这步:在
routes/web.php末尾加Filament::routes();如果想分离路由,新建routes/admin.php,内容为<?php use Filament\Facades\Filament; Filament::routes(); ?>,再在RouteServiceProvider的map()方法里加require base_path('routes/admin.php'); - 检查
config/filament.php中'path' => 'admin'—— 不能是空字符串,也不能是斜杠开头(如'/admin'),否则中间件匹配失败,页面 404 且无提示 - Nginx 部署时,确保已启用重写规则(
try_files $uri $uri/ /index.php?$query_string;),且APP_URL和FILAMENT_PATH在.env里一致 - 如果页面空白但控制台没报错,先清浏览器缓存,再检查
public/vendor/filament目录是否存在 JS/CSS 文件;缺失说明php artisan filament:assets没跑或权限不对
列表页搜索失效或性能崩了
不是前端问题,是 Laravel Admin 的 $grid->model() 和 $grid->filter() 调用顺序错了,或者 Filament 的关系字段没对齐模型定义。
- 在 Laravel Admin 中,
$grid->model()->where(...)必须放在$grid->filter()之后;如果先写 filter 再调 model()->where(),过滤器会失效——因为model()会重置查询构建器,把之前加的where全干掉 -
$filter->like('title')底层拼的是LIKE '%xxx%',大数据量时 MySQL 索引基本失效;真要模糊查,给字段加fulltext索引,或改用$filter->between('created_at')->datetime() - Filament 关系字段(如
BelongsToSelect)不显示?先确认模型里关系方法名(如public function user())和 Resource 中getRelations()返回的键名完全一致;再检查 Resource 的getLabel()是否返回了可读字符串,否则下拉框可能为空 - 多字段联合搜索别堆
like,改用$filter->custom()手动拼orWhere,否则 SQL 会变成WHERE title LIKE ? AND content LIKE ?,不是你想要的“任一字段匹配”
真正容易被忽略的点是:laravel-admin 1.8.x 的前端资源路径硬编码在 PHP 模板里,一旦你改过 public 目录结构或用了 CDN,admin.js 和 admin.css 就会 404;Filament 则对 Livewire 版本极其敏感,Laravel 11 默认带 Livewire v3,但 Filament v3.3 只认 v2.5+,不锁版本直接 composer require 几乎必翻车。










