【问题标题】:How do I make this param converter work?如何使这个参数转换器工作?
【发布时间】:2015-08-13 13:08:30
【问题描述】:

使用 Symfony2/Doctrine ORM

我有一个实体“ProductCategory”。

ProductCategory(字段)

  • id (int)
  • 显示名称(字符串)

我想用参数转换器创建一个路由。这就是我所拥有的。根据文档here 它应该可以工作。

/**
  * @Route("/products/{category_name}")
  * @ParamConverter("c", class="AppBundle:ProductCategory", options={"mapping": { "displayName" = "category_name"}})
  */
public function viewProductPageAction(ProductCategory $c)
{
    return $this->render('templates/view-product.html.twig');
}

那么上面发生了什么?我想通过字段 DisplayName 将路由键“category_name”转换为 ProductCategory 实体并将其分配给 $c强>。

看起来很简单。将 category_name 分配给映射选项中的 displayName 字段。但是我收到了这个错误。

无法猜测如何从请求信息中获取 Doctrine 实例。 500 - 逻辑异常

我收到错误的原因是什么,我是如何误解文档的?提前致谢。

【问题讨论】:

    标签: php symfony doctrine-orm


    【解决方案1】:

    好吧,你已经足够接近了。传递给mapping 的参数顺序相反。您在这里寻找的正确语法是这样的:

    /**
      * @Route("/products/{category_name}")
      * @ParamConverter("c", class="AppBundle:ProductCategory", options={"mapping": { "category_name" = "displayName"}})
      */
    

    【讨论】:

    • 我刚刚发现了这个!这在文档中明确说明。只是我的疏忽。感谢您的回复!
    猜你喜欢
    • 1970-01-01
    • 2021-05-05
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多