尝试在 Symfony 3.3 中使用序列化程序组件。我与拥有“日期时间”成员的实体斗争。
我的 config.yml 序列化程序初始化:
serializer:
enable_annotations: true
在 service.yml 中添加了这个:
datetime_method_normalizer:
class: Symfony\Component\Serializer\Normalizer\DateTimeNormalizer
public: false
tags: [serializer.normalizer]
反序列化的代码如下所示:
$yml = [...] // It was created by serializer->serialize()
$serializer = $this->get('serializer');
$myObject = $serializer->deserialize($yml, MyObject::class, "yaml");
错误是:Expected argument of type "DateTime", "string" given
在 vendor/symfony/symfony/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php 中(第 204 行)
我认为 DateTimeNormalizer::denormalize 永远不会被调用。知道如何让它恢复生机吗?
信息: DateTimeNormalizer::__constructor() 被调用。