Regex 在Symfony 2中如何用复杂参数描述路由
我有路径:Regex 在Symfony 2中如何用复杂参数描述路由,regex,symfony,routing,Regex,Symfony,Routing,我有路径:/user/username/{username}.{{u format} 和username可以有任何符号。 例如,以下所有内容均有效: 用户 user.name 用户。name@example.com user@example.com user.name jr 用户名 等等 username的每个部分都可以有任何字符 另外,\u格式是可选字符串,例如json,xml 我如何在路由规则中描述它 现在我有一个: MyBundle_getUserByUsername: pat
/user/username/{username}.{{u format}
和username
可以有任何符号。
例如,以下所有内容均有效:
用户
user.name
用户。name@example.com
user@example.com
user.name jr
用户名
username
的每个部分都可以有任何字符
另外,\u格式
是可选字符串,例如json
,xml
我如何在路由规则中描述它
现在我有一个:
MyBundle_getUserByUsername:
pattern: /user/username/{username}
defaults: { _controller: MyBundle:User:getUserByUsername, _format: json }
requirements:
_method: GET
username: ".+"
但它并没有发挥应有的作用。我无法指定格式参数
我需要你们的帮助…MyBundle\u getUserByUsername:
MyBundle_getUserByUsername:
pattern: /user/username/{username}.{_format}
defaults: { _controller: MyBundle:User:getUserByUsername, _format:json}
requirements:
_method: GET
username: ".+(?<=.)"
模式:/user/username/{username}.{u格式}
默认值:{u控制器:MyBundle:User:getUserByUsername,{u格式:json}
要求:
_方法:获取
用户名:“.+(?使用
如果用户名为user,则此选项无效。name@example.com
就像问题中的一样。它对我很有效。显示结果路由定义。此外,我用完整的路由定义更新了我的答案,请检查,可能您遗漏了什么。这不是Symfony,而是正则表达式。您只需要定义一个路由来执行下一个模式:“/^\/user\/username\/(.+?)(\.json | html)?$/”
MyBundle_getUserByUsername:
pattern: /user/username/{username}.{_format}
defaults: { _controller: MyBundle:User:getUserByUsername, _format: json }
requirements:
username: ".+?"
_method: GET
_format: html|json