在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”
有人知道如何实施这条规则吗?
答案 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项目