从 $_POST 请求(而不是来自 URL)使用 ParamConverter


Using ParamConverter from a $_POST request (not from URL)

是否可以

使用 Symfony2 中的@ParamConverter注释将_POST 美元请求发送的参数转换为实体?

symfony2文档中给出的所有示例都从路由中定义的参数转换实体。

设置类似的东西:

/**
 * @Route("/")
 * @ParamConverter("user", class="BvStandardServiceBundle:User", options={"id" = "userId"})
 */
public function userAction(User $user)
{
}

如果我使用userId $_POST 参数中的 id 调用此路由,则会导致:

无法猜测如何从请求中获取 Doctrine 实例 信息。

不幸的是,

symfony 的 paramConverter 只运行请求 param 到 URL 中:

框架直接与 URL 参数一起工作,用于搜索参数 url 和 paramConverter 之间的关联。如果你没有在你的URL中使用参数,引擎symfony将不会搜索与你的paramConverter的关联。

你也可以查看这个需要工作请求的kernel.event:类:ParamConverterListener.php

我使用 https://github.com/schmittjoh/JMSSerializerBundle 将JSON数据转换为Doctrine ORM实体,然后将它们保存到DB。