我在symfony 4.2中使用序列化来解码json并将一个实体保存到数据库中,问题是日期时间,当我反序列化symfony时出现一个错误,期望给出日期时间对象和字符串。
我检查了控件中所有的“ use”语句,以及所有带有property-info的配置,以使symfony识别json的所有字段并弄清楚它是什么。
链接到git项目:
/**
* @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);
}
我要传递的杰森
{
"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”转换为日期时间以保存到数据库中,但是给我一个错误:“在属性路径“ published_at”处给出的“ DateTiemInterface”类型的期望参数,“ string”。
感谢您的时间
答案 0 :(得分:0)
已解决
是我的json,json中的字段“ publishet_at”必须与类中的一样,这就像在数据库中一样。
{
"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"
}