Symfony @ROUTE(“/ {id}”)正则表达式要求不起作用

时间:2015-08-28 12:47:50

标签: php regex symfony routing annotations

在Symfony控制器上我使用注释来匹配仅以

结尾的URI
.../integer-integer
or
.../integer

我的代码

 /**
 * @Route("/notification/old/{id}", requirements={"id" = "(^\d+$)|(^\d+\-\d+$)"})
 * @Method("GET")
 */

根据Regex101,我的模式是正确的。 但是,Symfony返回

  

找不到“GET / notification / old / 1-1”的路线   找不到“GET / notification / old / 1”的路线

我做错了什么?

1 个答案:

答案 0 :(得分:1)

正则表达式应该导致问题。您可以摆脱交替,捕获组并将其简化为

^\d+(?:-\d+)?$

它匹配字符串开头的一个或多个数字,然后可选地匹配连字符和一个或多个数字直到字符串的结尾。