在 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] 你可以验证范围
我正在玩 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] 你可以验证范围