从 $_POST 请求中使用 ParamConverter(不是来自 URL)
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 调用此路由,结果为:
Unable to guess how to get a Doctrine instance from the request
information.
symfony 的 paramConverter 运行 仅用于将请求参数转换为 URL 不幸的是:ParamConverter specification
Framework 直接与 URL 参数一起工作,用于搜索参数 url 和 paramConverter 之间的关联。如果您不在 URL 中使用参数,引擎 symfony 将不会搜索与您的 paramConverter 的关联。
您还可以查看 kernel.event 这需要工作请求:Class : ParamConverterListener.php
我使用 https://github.com/schmittjoh/JMSSerializerBundle 将 JSON 数据转换为 Doctrine ORM 实体,然后将它们保存到 DB。
是否可以使用 Symfony2 中的@ParamConverter 注释将通过 $_POST 请求发送的参数转换为实体?
symfony2 文档中给出的所有示例都从路由中定义的参数转换实体。
设置类似的东西:
/**
* @Route("/")
* @ParamConverter("user", class="BvStandardServiceBundle:User", options={"id" = "userId"})
*/
public function userAction(User $user)
{
}
如果我在 userId
$_POST 参数中使用 id 调用此路由,结果为:
Unable to guess how to get a Doctrine instance from the request information.
symfony 的 paramConverter 运行 仅用于将请求参数转换为 URL 不幸的是:ParamConverter specification
Framework 直接与 URL 参数一起工作,用于搜索参数 url 和 paramConverter 之间的关联。如果您不在 URL 中使用参数,引擎 symfony 将不会搜索与您的 paramConverter 的关联。
您还可以查看 kernel.event 这需要工作请求:Class : ParamConverterListener.php
我使用 https://github.com/schmittjoh/JMSSerializerBundle 将 JSON 数据转换为 Doctrine ORM 实体,然后将它们保存到 DB。