Symfony1 Symfony路线参数要求限制
如何强制要求路由中的参数为字符串 给定路线 我的_foobar_路线: url:/example/routing/:s1/:id 要求:{id:\d+}Symfony1 Symfony路线参数要求限制,symfony1,Symfony1,如何强制要求路由中的参数为字符串 给定路线 我的_foobar_路线: url:/example/routing/:s1/:id 要求:{id:\d+} 有人能提醒我如何强制参数s1成为字符串吗?几乎通过url得到的任何东西都是字符串-任何要求都比这强,您不需要做任何事情,您的参数已经是字符串了。也许您需要一个特殊格式的字符串?您只需要提供一个合适的正则表达式: my_foobar_route: url: /example/routing/:s1/:id requirements:
有人能提醒我如何强制参数s1成为字符串吗?几乎通过url得到的任何东西都是字符串-任何要求都比这强,您不需要做任何事情,您的参数已经是字符串了。也许您需要一个特殊格式的字符串?您只需要提供一个合适的正则表达式:
my_foobar_route:
url: /example/routing/:s1/:id
requirements:
id: \d+
s1: "[a-zA-Z]+"
编辑:在第二个正则表达式周围添加引号;YAML将
[…]
解释为一个参数数组。谢谢:-)如果您不关心字符串包含的内容,或者您事先不知道它将包含什么内容,请尝试以下操作:
my_foobar_route:
url: /example/routing/:s1/:id
requirements:
id: \d+
s1: "[^/]+"
这将允许除用作参数分隔符的“/”字符以外的所有字符。带着表情
my_foobar_route:
url: /example/routing/:s1/:id
requirements:
id: \d+
s1: "[^/]{3,}"
您可以强制字符串长度至少为三个字符
别忘了将带有方括号的正则表达式放在引号中如果您忘记了它们,路由的YAML解析器将把它们解释为数组表达式。编辑,谢谢。总是忘记将
[]
解释为YAML数组,我通常的路由正则表达式几乎总是以\d+
;-)结尾