如何允许“/”字符出现在路由参数中

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.1,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

如何允许“/”字符出现在路由参数中

有时,您需要使用包含斜杠的参数组合url/.以经典为例/ hello / {username}路线。默认情况下,/ hello /法比安将匹配这条路线,但不是/ hello /法/克丽丝.这是因为Symfony使用该字符欧宝娱乐app下载地址作为路由部分之间的分隔符。

本指南将介绍如何修改路由,以便/ hello /法/克丽丝匹配/ hello / {username}路线,{username}=法比安/克里斯

配置路由

默认情况下,Symfony Ro欧宝娱乐app下载地址uting组件要求参数匹配以下正则表达式路径:[^ /] +.这意味着除了/

你必须明确地允许/通过指定更允许的正则表达式路径来成为参数的一部分。

  • 注释
  • YAML
  • XML
  • PHP
12 3 4 5 6 7 8 9 10 11 12
使用Sensio赞助FrameworkExtraBundle配置路线DemoController/ * * *@Route(“/ hello / {username}”,name = " _hello "需求={"用户名 "=".+"}) */公共函数helloAction用户名/ /……}}

就是这样!现在,{username}参数可以包含/的性格。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。