【发布时间】:2020-10-21 14:07:59
【问题描述】:
我正在使用 Serializer 组件从 json 响应中反序列化帖子。
$data = <<<EOF
{
"header": {
"error": 0,
"message": "ok",
"next": 2
},
"results": [
{
"id": 17007,
"title": "test article title 1",
"publishedAt": "28/09/2020"
},
{
"id": 17008,
"title": "sample article 2",
"publishedAt": "28/09/2020"
}
]
}
EOF;
$json = json_encode(json_decode($data)->results);
$normalizers = array(new ObjectNormalizer(),new GetSetMethodNormalizer(), new ArrayDenormalizer());
$encoders = array(new JsonEncoder());
$serializer = new Serializer($normalizers, $encoders);
$posts = $serializer->deserialize($json, Post::class . '[]', 'json');
dd($posts); exit;
我得到了这个例外:
未能对类的属性“publishedAt”值进行非规范化 “App\Entity\Post”:“DateTime”、“string”类型的预期参数 在属性路径“publishedAt”中给出。
我创建了这个简单的项目来向您展示我的代码 https://github.com/ferrassi/sfDevs 你知道我做错了什么吗?
【问题讨论】:
-
尝试添加DateTimeNormalizer
-
我添加了 DateTimeNormalizer,不起作用