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 位或多位数字直到字符串的结尾。
在 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 位或多位数字直到字符串的结尾。