我正在玩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
非常感谢!
答案 0 :(得分:3)
要求是正则表达式(正则表达式),因此您可以使用正则表达式 ^([0-9] | 10)$
对于第二个,您可以为大于10的数字定义正则表达式,如下所示: ^ 0 *([1-9] \ d {2,} | 0 * [1-9] \ d)$
答案 1 :(得分:1)
requirements选项接受RegEx。所以使用[1-10]你可以对范围进行验证