Przeglądaj źródła

修复农场模块枚举对象字符串转换错误

问题描述:
- UpdateCropGrowthCommand中GROWTH_STAGE枚举对象在字符串插值时无法转换为字符串
- 多个地方使用了错误的->value()方法调用,应该使用->value属性

修复内容:
1. UpdateCropGrowthCommand.php: 修复枚举对象在字符串插值中的使用,使用getName()方法获取可读名称
2. FixCropFinalOutputCommand.php: 修复->value()方法调用为->value属性访问
3. CropInfoDto.php: 修复->value()方法调用为->value属性访问
4. UCore/DcatAdmin/ShowHelper.php: 修复BackedEnum的->value()方法调用
5. UCore/DcatAdmin/GridHelper.php: 修复UnitEnum的->value()方法调用

技术要点:
- PHP枚举的value是属性而非方法,不能使用括号调用
- 枚举对象在字符串上下文中需要显式转换
- 使用枚举的getName()静态方法获取人类可读的名称
AI Assistant 6 miesięcy temu
rodzic
commit
62d50edb59

+ 1 - 1
UCore/DcatAdmin/GridHelper.php

@@ -314,7 +314,7 @@ class GridHelper
                 return $default;
             }
             if ($value instanceof \UnitEnum) {
-                $value = $value->value();
+                $value = $value->value;
             }
 
             return Arr::get($option, $value, $default);

+ 1 - 1
UCore/DcatAdmin/ShowHelper.php

@@ -120,7 +120,7 @@ class ShowHelper
                 return $default;
             }
             if($value instanceof \BackedEnum){
-                $value = $value->value();
+                $value = $value->value;
             }
             return Arr::get($values, $value, $default);
         });

+ 1 - 1
app/Module/Farm/Commands/FixCropFinalOutputCommand.php

@@ -69,7 +69,7 @@ class FixCropFinalOutputCommand extends Command
                         $crop->user_id,
                         $crop->land_id,
                         $crop->seed_id,
-                        GROWTH_STAGE::getName($crop->growth_stage->value()),
+                        GROWTH_STAGE::getName($crop->growth_stage->value),
                         $crop->plant_time
                     ];
                 })->toArray()

+ 1 - 1
app/Module/Farm/Dtos/CropInfoDto.php

@@ -120,7 +120,7 @@ class CropInfoDto
 
         $dto->plantTime = $crop->plant_time;
 
-        $dto->growthStage = $crop->growth_stage->value();
+        $dto->growthStage = $crop->growth_stage->value;
 //        $dto->growthStageName = $crop->growth_stage->name;
         $dto->stageStartTime = $crop->stage_start_time ? $crop->stage_start_time : null;
         $dto->stageEndTime = $crop->stage_end_time ? $crop->stage_end_time : null;