为什么symfony FOSRest捆绑包找不到合适的控制器?

时间:2019-05-02 06:50:13

标签: rest symfony fosrestbundle

我有两个动作:

/**
 * @Rest\Get("/items/{itemId}")
 */
public function getAction(UuidInterface $id): View

/**
 * @Rest\Get("/items/available")
 */
public function getAvailableAction() : View

问题是,当我尝试通过链接items/available调用getAvailableAction时,将调用getAction。我猜想它会以某种原因将可用字词解释为{itemId}

我应该如何解决?

1 个答案:

答案 0 :(得分:3)

您猜对了。只需定义一个适当的要求即可:

 /**
  * @Rest\Get("/items/{itemId}", requirements={"itemId" = "\d+"})
  */

如果您的itemIdUUID,请将数字正则表达式从\d+更改为[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}或简化的[a-fA-F0-9\-]{36}

别忘了清除缓存。