根据一系列数字在Symfony2中定义路由要求

时间:2017-05-05 07:03:10

标签: php symfony url-routing

我正在玩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,则应调用另一个方法/控制器,而不是该数字低于或等于10。 如何在10的要求中定义它?我只发现了reqular表达式,我不知道如何弯曲那些我的意志:) 在这里找到我的回购:https://github.com/mattlang88/first_symfony_project

非常感谢!

2 个答案:

答案 0 :(得分:3)

要求是正则表达式(正则表达式),因此您可以使用正则表达式 ^([0-9] | 10)$

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

答案 1 :(得分:1)

requirements选项接受RegEx。所以使用[1-10]你可以对范围进行验证