Deserialization of enum properties fails
Guite opened this issue · 2 comments
Guite commented
Hello,
trying to replace a Mongo document using this bundle. First steps look promising, but currently denormalize
fails because the payload contains some enum values.
Cannot instantiate enum Some\Namespace\Label
Error
in vendor/symfony/serializer/Normalizer/AbstractNormalizer.php (line 407)
in vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php -> instantiateObject (line 244)
in vendor/symfony/serializer/Normalizer/AbstractObjectNormalizer.php -> instantiateObject (line 323)
in vendor/symfony/serializer/Serializer.php (line 227)
in vendor/dunglas/doctrine-json-odm/src/SerializerTrait.php (line 52)
in vendor/dunglas/doctrine-json-odm/src/TypedSerializerTrait.php -> doDenormalize (line 31)
in vendor/symfony/serializer/Normalizer/ArrayDenormalizer.php -> denormalize (line 56)
in vendor/symfony/serializer/Serializer.php (line 227)
in vendor/dunglas/doctrine-json-odm/src/SerializerTrait.php (line 58)
in vendor/dunglas/doctrine-json-odm/src/TypedSerializerTrait.php -> doDenormalize (line 31)
in vendor/dunglas/doctrine-json-odm/src/SerializerTrait.php -> denormalize (line 50)
in vendor/dunglas/doctrine-json-odm/src/TypedSerializerTrait.php -> doDenormalize (line 31)
in vendor/symfony/serializer/Normalizer/ArrayDenormalizer.php -> denormalize (line 56)
in vendor/symfony/serializer/Serializer.php (line 227)
in vendor/dunglas/doctrine-json-odm/src/SerializerTrait.php (line 58)
in vendor/dunglas/doctrine-json-odm/src/TypedSerializerTrait.php -> doDenormalize (line 31)
in vendor/dunglas/doctrine-json-odm/src/SerializerTrait.php -> denormalize (line 50)
in vendor/dunglas/doctrine-json-odm/src/TypedSerializerTrait.php -> doDenormalize (line 31)
in vendor/symfony/serializer/Serializer.php -> denormalize (line 145)
in vendor/dunglas/doctrine-json-odm/src/Type/JsonDocumentType.php -> deserialize (line 112)
Do you have any idea or best practice how to cope with such cases?
Toflar commented
I guess that's not related to this type. If you want the serializer to be able to handle your enums (afaik only backed enums are supported by default), you'll have to register your own normalizer :)