如何使这个参数转换器工作?

时间:2015-05-30 19:19:27

标签: php symfony doctrine-orm

使用Symfony2 / Doctrine ORM

我有一个实体“ProductCategory”。

ProductCategory (字段)

  • id(int)
  • displayName(string)

我想用param转换器创建一个路由。这就是我所拥有的。根据文档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');
}

那么那里发生了什么?我想将路径密钥“ category_name ”转换为 ProductCategory 实体,其字段为 DisplayName ,并将其分配给 $ c

似乎很容易。将category_name分配给映射选项中的displayName字段。但是我收到了这个错误。

  

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

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

1 个答案:

答案 0 :(得分:1)

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

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