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

Symfony @ROUTE("/{id}") regex requirements not working

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

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

我的代码

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

根据Regex101,我的模式是正确的。 然而,Symfony returns

No route found for "GET /notification/old/1-1"
No route found for "GET /notification/old/1"

我做错了什么?

正则表达式应该是导致问题的原因。可以去掉交替,捕获组,简化为

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

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