我目前正在尝试在网址中使用破折号作为段分隔符与Symfony 1.4.18,我有一些麻烦使它工作。
这是我的路线:
franchise:
url: /number-:page-:slug
param: { module: store, action: franchise, page: 1 }
options: { suffix: .html, segment_separators: [ /,- ] }
requirements:
page: \d+
正如您所看到的,模式非常简单我定义了一个常量“数字”,后跟一个破折号和一个变量:页面只是一个数字。它后跟一个破折号和一个slug(slug可以包含字母数字值和破折号)。
url是由方法url_for正确生成的,但是当我尝试访问它时,我有一个常见的错误:
解析URL后清空模块和/或操作...
我尝试用加号替换:page和:slug之间的短划线(并将其添加到segment_separators),但它既不起作用。
我不知道该怎么办?有没有人遇到过这种麻烦?
答案 0 :(得分:1)
问题是您的slug
有一些破折号,因此Symfony无法确定page
和slug
之间的分隔符在哪里。
如果你向slug
添加一个要求,要明确告诉Symfony slug可以包含破折号,它就可以了。
franchise:
url: /number-:page-:slug
param: { module: store, action: franchise, page: 1 }
options: { suffix: .html, segment_separators: [ /,- ] }
requirements:
page: \d+
slug: "[a-zA-Z0-9\-]+"
答案 1 :(得分:1)
我越来越多地测试了这个案例
除/
示例
工作“/ test-:test” - >一个分隔符 没有工作“/ test-:test-:test”不止一个 工作“/ test /:test /:test”不仅仅是“/”
希望这些信息有用 谢谢..