Add support for AsCollection::using and AsEnumCollection::of casts

This commit is contained in:
uno-sw
2024-08-02 13:18:15 +09:00
parent 591e7d665f
commit 51fb97b8fb
+12 -2
View File
@@ -409,8 +409,6 @@ class ModelsCommand extends Command
case 'immutable_datetime':
$realType = '\Carbon\CarbonImmutable';
break;
case AsCollection::class:
case AsEnumCollection::class:
case 'collection':
$realType = '\Illuminate\Support\Collection';
break;
@@ -436,6 +434,18 @@ class ModelsCommand extends Command
continue;
}
if (Str::startsWith($type, AsCollection::class)) {
$realType = $this->getTypeInModel($model, $params[0] ?? null) ?? '\Illuminate\Support\Collection';
}
if (Str::startsWith($type, AsEnumCollection::class)) {
$realType = '\Illuminate\Support\Collection';
$relatedModel = $this->getTypeInModel($model, $params[0] ?? null);
if ($relatedModel) {
$realType = $this->getCollectionTypeHint($realType, $relatedModel);
}
}
$realType = $this->checkForCastableCasts($realType, $params);
$realType = $this->checkForCustomLaravelCasts($realType);
$realType = $this->getTypeOverride($realType);