在 Symfony2 中根据数字范围定义路由要求

Define routing requirements in Symfony2 based on a range of numbers

我正在玩 symfony tutorial,我想知道是否以及如何根据 URL 路径中给定通配符的数量使用不同的路由。 这是我的路由 yaml 代码:

app:
resource: '@AppBundle/Controller/'
type: annotation

luckynumberSmallNumbers:
    path:      /lucky/number/{max}
    defaults:  { _controller: AppBundle:Lucky:smallNumber, max: 10}
    requirements:
       max: \d+ #TODO: something to define numbers smaller  or equal to 10

luckynumberBigNumbers:
    path:      /lucky/number/{max}
    defaults:  { _controller: AppBundle:Lucky:bigNumber, max: 10}
    requirements:
        max: \d+ #TODO: something to define numbers greater than 10

例如在我的示例中,路径为 /lucky/number/{max} 如果 {max} 中给出的数字大于 10,则应调用另一个 method/controller,如果该数字小于或等于 10。 我如何在 10 的要求中定义它?我只找到了正则表达式,但我不知道如何让它们屈服于我的意志:) 在这里找到我的回购:https://github.com/mattlang88/first_symfony_project

非常感谢!

要求是正则表达式(regex),所以你可以有一个正则表达式像 ^([0-9]|10)$

对于第二个,您可以像这样为大于 10 的数字定义正则表达式: ^0*([1-9]\d{2,}|0*[1-9]\d)$

要求选项接受正则表达式。所以使用 [1-10] 你可以验证范围