Underscore作为routing.yml中的segment_separators

时间:2010-05-24 09:02:46

标签: routing symfony1

在symfony项目中,我想使用下划线作为分隔符 对于routing.yml中的参数。

Url示例: /article/lorem-1111_45.html

在routing.yml

rule_sample:
 url:      /article/:info-:datePublished_:id.html
 param:    { module: cms, action: test }
 options:
   segment_separators: ['-', '/', '.', '_']
 requirements:
   info: ^([A-Za-z0-9\-]+)$
   datePublished: \d+
   id: \d+

此代码无效。我有以下错误: 无法解析附近的“/article/:info-:datePublished_:id.html”路线 “:id.html”

有人知道如何实施这条规则吗?

2 个答案:

答案 0 :(得分:1)

我认为是sfRoute.class.php中的一个错误。第683行: 'variable_regex'=> '[\ W \ d _] +'

PHP中的

\ w“匹配任何字母数字字符,包括下划线(_)”,最后一个下划线匹配相同。我试图改变这一行: 'variable_regex'=> '[\ A-ZA-Z \ d] +'

现在我可以使用下划线作为分隔符。

我没有对此进行过多次测试。我不知道这是否会破坏任何其他功能(当然),但也许这就是Symfony程序员可以启动此错误的行。

答案 1 :(得分:0)

我相信这是symfony中的一个错误。

我做了一个失败的测试并提交了bug report测试到symfony项目