【问题标题】:Using ParamConverter from a $_POST request (not from URL)从 $_POST 请求(不是来自 URL)使用 ParamConverter
【发布时间】:2016-05-18 07:06:59
【问题描述】:

是否可以在 Symfony2 中使用 @ParamConverter 注解将通过 $_POST 请求发送的参数转换为实体?

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

这样设置:

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

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

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

【问题讨论】:

标签: php symfony annotations symfony-routing


【解决方案1】:

不幸的是,symfony 的 paramConverter 只为请求参数运行到 URL 中:ParamConverter specification

Framework 直接使用 URL 参数来搜索 param url 和 paramConverter 之间的关联。如果你没有在 URL 中使用参数,symfony 引擎将不会搜索与你的 paramConverter 的关联。

您也可以查看需要工作的 kernel.event :Class : ParamConverterListener.php

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 2015-04-27
      • 2020-06-07
      • 2011-04-21
      • 2017-12-06
      • 2016-06-03
      • 2019-12-23
      相关资源
      最近更新 更多