带有 GetSetMethodNormalizer returns 空数组而不是日期的 Symfony 序列化程序

Symfony serializer with GetSetMethodNormalizer returns an empty arrays instead of dates

我配置服务使用 GetSetMethodNormalizer

services:
    Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer:
        arguments: [ '@Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface', '@serializer.name_converter.camel_case_to_snake_case' ]
        tags: [serializer.normalizer]

当我调用 $serializer->serialize() 时,我得到一个空数组作为序列化日期变量的值。

请问如何解决?

问题出在规范化程序的优先级上。这是一个解决方案:

services:
    Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer:
        arguments: ['@Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface', '@serializer.name_converter.camel_case_to_snake_case']
        tags:
            - { name: 'serializer.normalizer', priority: -1100 }

新的优先级会将此规范化器置于所有标准规范化器之后,序列化将按预期工作。