是否可以使用Symfony2中的@ParamConverter注释将通过$ _POST请求发送的参数转换为实体?
symfony2文档中给出的所有示例都会从路径中定义的参数转换实体 .
设置类似的东西:
/**
* @Route("/")
* @ParamConverter("user", class="BvStandardServiceBundle:User", options={"id" = "userId"})
*/
public function userAction(User $user)
{
}
如果我在 userId
$ _POST参数中使用id调用此路由,则会导致:
无法猜测如何从请求信息中获取Doctrine实例 .
2 回答
不幸的是,symfony的paramConverter只为请求参数运行到URL中:ParamConverter specification
框架直接使用URL参数来搜索param url和paramConverter之间的关联 . 如果您不在URL中使用参数,则引擎symfony将不会搜索与您的paramConverter的关联 .
您还可以查看需要工作请求的kernel.event:Class : ParamConverterListener.php
我使用https://github.com/schmittjoh/JMSSerializerBundle将JSON数据转换为Doctrine ORM实体,然后将它们保存到DB .