我使用了symfony 4.2序列来解码JSON和实体保存到数据库中,这个问题的日期时间,当我反序列化的symfony给我说,期望一个DateTime对象和字符串给出一个错误。
我检查了所有的“使用”的语句在我的控制,以及所有的配置与财产信息,让symfony的识别JSON的各个领域,并找出它是什么。
链接到Git项目:
https://github.com/erethilclaw/lair_of_claw
/**
* @Route("admin/newPost", name="newPost", methods={"POST"})
*/
public function newPost( Request $request){
/** @var Serializer $serializer */
$serializer = $this->get('serializer');
$post = $serializer->deserialize($request->getContent(),
Post::class, 'json');
$em = $this->getDoctrine()->getManager();
$em->persist($post);
$em->flush();
return $this->json($post);
}
我经过的Json
{
"title": "A third blog post!",
"published_at": "2018-07-01 12:00:00",
"content": "Hello there!",
"author": "Piotr Jura",
"slug": "a-third-blog-post"
}
与反序列化方法应该在“published_at”转换为保存到数据库中的日期时间,但给我的错误:“类型的期望的参数‘DateTiemInterface’,”串published_at”在属性路径给出‘’。
谢谢你的时间
解决了
是我的JSON,现场“publishet_at”在JSON必须是在类,在这里就像是在数据库中。
{
"title": "A third blog post!",
"published_at": "2018-07-01 12:00:00",
"content": "Hello there!",
"author": "Piotr Jura",
"slug": "a-third-blog-post"
}
改变解决了这个问题。
{
"title": "A third blog post!",
"publishedAt": "2018-07-01 12:00:00",
"content": "Hello there!",
"author": "Piotr Jura",
"slug": "a-third-blog-post"
}