diff --git a/src/Rules/Doctrine/ORM/EntityColumnRule.php b/src/Rules/Doctrine/ORM/EntityColumnRule.php index 5a9f5fff..aa8343b7 100644 --- a/src/Rules/Doctrine/ORM/EntityColumnRule.php +++ b/src/Rules/Doctrine/ORM/EntityColumnRule.php @@ -105,26 +105,6 @@ public function processNode(Node $node, Scope $scope): array $writableToPropertyType = $descriptor->getWritableToPropertyType(); $writableToDatabaseType = $descriptor->getWritableToDatabaseType(); - if ($fieldMapping['type'] === 'enum') { - $values = $fieldMapping['options']['values'] ?? null; - if (is_array($values)) { - $enumTypes = []; - foreach ($values as $value) { - if (!is_string($value)) { - $enumTypes = []; - break; - } - - $enumTypes[] = new ConstantStringType($value); - } - - if (count($enumTypes) > 0) { - $writableToPropertyType = new UnionType($enumTypes); - $writableToDatabaseType = new UnionType($enumTypes); - } - } - } - $enumTypeString = $fieldMapping['enumType'] ?? null; if ($enumTypeString !== null) { if ($writableToDatabaseType->isArray()->no() && $writableToPropertyType->isArray()->no()) { @@ -179,6 +159,24 @@ public function processNode(Node $node, Scope $scope): array ), ...TypeUtils::getAccessoryTypes($writableToDatabaseType)); } + } elseif ($fieldMapping['type'] === 'enum') { + $values = $fieldMapping['options']['values'] ?? null; + if (is_array($values)) { + $enumTypes = []; + foreach ($values as $value) { + if (!is_string($value)) { + $enumTypes = []; + break; + } + + $enumTypes[] = new ConstantStringType($value); + } + + if (count($enumTypes) > 0) { + $writableToPropertyType = new UnionType($enumTypes); + $writableToDatabaseType = new UnionType($enumTypes); + } + } } $identifiers = [];