Symfony\Component\ErrorHandler\Error\FatalError
app/Filament/Resources/QuestionResource.php:17
Type of App\Filament\Resources\QuestionResource::$navigationIcon must be BackedEnum|string|null (as in class Filament\Resources\Resource)
Filament 3 对资源属性有严格的类型检查,$navigationIcon 必须符合 BackedEnum|string|null 类型。
由于我们已经通过 Page 方式 实现了题库管理功能(QuestionManagement.php),不再需要使用 Resource 方式。
已删除的文件:
app/Filament/Resources/QuestionResource.phpapp/Filament/Resources/QuestionResource/Pages/*.phpapp/Filament/Resources/ 目录已更新的文件:
app/Providers/Filament/AdminPanelProvider.php - 移除了对 QuestionResource 的引用和 discoverResources 调用FilamentAdmin/app/Filament/
├── Pages/
│ ├── KnowledgePoints.php # 知识点管理页
│ ├── KnowledgePointDetail.php # 知识点详情页
│ └── QuestionManagement.php # 题库管理页 ✅
│ └── resources/views/filament/pages/
│ └── question-management.blade.php
└── Services/
└── QuestionServiceApi.php # 题库 API 客户端 ✅
URL: http://filament-admin.test/admin
导航:题库系统 → 题库管理
所有题库操作通过 QuestionServiceApi 服务类实现:
use App\Services\QuestionServiceApi;
$service = app(QuestionServiceApi::class);
// 获取题目列表
$response = $service->listQuestions(1, 25, [
'kp_code' => 'KP1001',
'search' => '因式分解'
]);
// 搜索题目
$results = $service->searchQuestions('题目内容', 20);
// AI 生成题目
$result = $service->generateQuestions([
'kp_code' => 'KP1001',
'keyword' => '因式分解',
'count' => 50
]);
| 功能 | Page 方式 | Resource 方式 |
|---|---|---|
| 列表展示 | ✅ 完整控制 | ✅ 表格组件 |
| 搜索筛选 | ✅ 自定义实现 | ✅ 内置筛选器 |
| 批量操作 | ✅ 完全自定义 | ✅ 内置批量操作 |
| 数据验证 | ✅ 服务端验证 | ✅ 自动验证 |
| 错误处理 | ✅ 灵活处理 | ✅ 固定模式 |
| 样式定制 | ✅ 任意 HTML/CSS | ✅ 表格样式 |
| 交互逻辑 | ✅ 任意 JS/ Alpine | ✅ 表格交互 |
使用 Page 方式 实现题库管理是更明智的选择,它提供了:
现在系统可以正常运行,不会再出现类型错误!
修复日期:2025-11-15 状态:✅ 已修复