Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在Symfony 2中如何用复杂参数描述路由_Regex_Symfony_Routing - Fatal编程技术网

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