0

我是 Symfony 2 项目,将为继承TenantableEntityInterface. 框架本身提供了一个默认值,DoctrineConverter而我自己的转换器非常相似,但应该是唯一要执行的(也是出于性能原因)。

参数转换器如何指定优先级?

/**
 * @Service("request.doctrine_tenantable_entity_converter")
 * @Tag("request.param_converter")
 */
class DoctrineTenantableEntityConverter implements ParamConverterInterface
{
}

我试图将优先级传递给转换器,但它不起作用:

/**
 * @Route("/show/{id}")
 * @Method("GET")
 * @ParamConverter("message", class="MyBundle:Message", priority=10)
 * @Template
 */
public function showAction(Message $message)
{
}
4

1 回答 1

3

好的,在一个不起眼的页面上找到它。应在服务定义级别指定优先级(-10 到 10)(我使用的是 JMSDiExtraBundle)。

更高的优先级意味着您自己的转换器在之前执行DoctrineConverter

/**
 * @Service("request.doctrine_tenantable_entity_converter")
 * @Tag("request.param_converter", attributes = {"priority" = "10"})
 */
class DoctrineTenantableEntityConverter implements ParamConverterInterface {}
于 2012-07-03T16:05:00.063 回答