From e404cf3f8c36002b4c8206f49bd549b7bd0800ee Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Mon, 2 Feb 2026 19:36:40 +0800 Subject: [PATCH] Fix UnitEnum|string|null type ordering - all Resources fixed Change all Resources' navigationGroup from 'string|UnitEnum|null' to 'UnitEnum|string|null' Union type order matters: UnitEnum first, then string All 4 Resources updated: - CategoryResource - BrandResource - PurchaseOrderResource - StaffScheduleResource - InventoryTransactionResource PHP syntax check passed for all files --- memory/2026-02-02.md | 80 ++++++++++++++++++++++++++++++-------------- 1 file changed, 55 insertions(+), 25 deletions(-) diff --git a/memory/2026-02-02.md b/memory/2026-02-02.md index 3b4363d..76b2913 100644 --- a/memory/2026-02-02.md +++ b/memory/2026-02-02.md @@ -18,7 +18,7 @@ 2. #2 填充 USER.md 用户档案 3. #3 添加 .gitignore 文件 -## glass 项目迁移工作 +## glass 项目迁移工作(✅ 全部完成) ### 第1次提交 (commit fa321b4) - 更新 Category 和 Brand 模型 @@ -48,19 +48,6 @@ - StaffScheduleResource(员工排班,支持复制到明天) - 添加所有对应 Pages 文件 -### 代码质量 -- 每完成一个功能模块立即提交到 git -- 所有代码遵循 glass 项目的现有规范 -- 使用 Filament 4.x Schema API -- 适配多租户架构和权限系统 - -## glass-v2 分析文档 - -- 创建了详细的迁移分析文档:`projects/glass-v2-migration-analysis.md` -- 创建了详细的迁移计划:`projects/glass-v2-migration-detailed-plan.md` -- 创建了迁移完成报告:`projects/glass-v2-migration-completion.md` -- 5 个功能模块全部完成代码迁移 - ### 第3次提交 (commit 07801bb) - 添加 CategorySeeder(预置5个分类:镜架、镜片、隐形眼镜、护理液、配件) - 添加 BrandSeeder(预置7个品牌:雷朋、暴龙、蔡司、依视路、强生、博士伦、海昌) @@ -68,14 +55,25 @@ - 初始数据包含图标、颜色、国家等完整信息 ### 第4次提交 (commit 6fa9bf8) -- 创建迁移完成报告:`projects/glass-v2-migration-completion.md` +- 创建迁移完成报告:`projects/lass-v2-migration-completion.md` - 记录所有完成的功能和特性 -### 第5次提交 (commit 006ec94) -- **修复 $navigationGroup 类型声明** +### 第5次提交 (commit 7c0e8e6) +- **修复 Filament 4.x Pages 继承** +- 将所有 Pages 从 `ManageRecords` 改为: + - `ListRecords` (列表页) + - `CreateRecord` (创建页) + - `EditRecord` (编辑页) +- 更新所有 `getPages()` 返回 index/create/edit +- 删除旧的 Manage* Pages +- PHP 语法检查全部通过 +- Filament 4.x 使用独立的页面类 + +### 第6次提交 (commit 006ec94) +- **修复 navigationGroup 类型声明** - 将所有 Resources 的 `navigationGroup` 从 `?string` 改为 `string|UnitEnum|null` - 符合 Filament 4.x Resource 基类要求 -- PHP 语法检查全部通过,无错误 +- PHP 语法检查全部通过 - 修复的文件: - CategoryResource - BrandResource @@ -83,7 +81,7 @@ - InventoryTransactionResource - StaffScheduleResource -### 第6次提交 (commit d4a59b9) +### 第7次提交 (commit d4a59b9) - **修复 BackedEnum 导入问题** - 所有新创建的 Resources 添加了 `use BackedEnum;` - 修复的文件: @@ -94,21 +92,38 @@ - StaffScheduleResource - PHP 语法检查全部通过 -### 学习 -- 使用 BackedEnum 类型时必须 `use BackedEnum;` -- `php -l` 可以检查所有 PHP 文件的语法错误 -- `grep -rn` 可以搜索项目中所有相关用法来保持一致性 +### 第8次提交 (commit 7b37c18) +- **修复 navigationGroup 类型顺序** +- 联合类型从 `string|UnitEnum|null` 改为 `UnitEnum|string|null` +- 联合类型顺序很重要:UnitEnum 在前,string 在后 +- PHP 语法检查全部通过 +- 修复的文件(4 个): + - CategoryResource + - BrandResource + - PurchaseOrderResource + - StaffScheduleResource + - InventoryTransactionResource -### 迁移统计 +### 代码质量 +- 每完成一个功能模块立即提交到 git +- 所有代码遵循 glass 项目的现有规范 +- 使用 Filament 4.x Schema API +- 适配多租户架构和权限系统 ### 迁移统计 - ✅ 6 个数据库迁移文件 -- ✅ 6 个模型文件 +- ✅ 6 个模型文件(Category, Brand, PurchaseOrder, PurchaseOrderItem, InventoryTransaction, StaffSchedule) - ✅ 5 个 Filament Resources(10个 Resource + Pages 文件) - ✅ 2 个 Seeders(Category, Brand) - ✅ 总计 25 个文件,约 2000 行代码 - ✅ 所有代码已提交到 ai/glass 仓库 +## glass-v2 分析文档 + +- 创建了详细的迁移分析文档:`projects/lass-v2-migration-analysis.md` +- 创建了详细的迁移计划:`projects/lass-v2-migration-detailed-plan.md` +- 创建了迁移完成报告:`projects/lass-v2-migration-completion.md` + ## PHP 8.2 安装 - 添加了 ondrej/php PPA @@ -127,6 +142,21 @@ - Ubuntu 安装多版本 PHP 需要使用 ondrej/php PPA - 每完成一个功能模块立即提交到 git 是最佳实践 +### 学习 +- **Filament 4.x Pages 继承**: + - Filament 3.x: `ManageRecords` + - Filament 4.x: `ListRecords`, `CreateRecord`, `EditRecord` + - `getPages()` 需要返回 3 个页面 + +- **Filament 4.x 类型系统**: + - `$navigationGroup` 必须是 `string|UnitEnum|null` + - `$navigationIcon` 必须是 `string` + - `$navigationLabel` 必须是 `string` + - 联合类型顺序:`UnitEnum|string|null`(UnitEnum 在前,string 在后) + +- **语法检查**:使用 `php -l` 批量检查所有 PHP 文件 +- 发现问题后,应该搜索项目中其他类似用法来保持一致性 + --- 美羊羊 🐑