目前,我正试图在带有Symfony 1.4.18的URL中使用破折号作为段分隔符,而且我在使其工作时遇到了一些困难。
这是我的路线:
franchise:
url: /number-:page-:slug
param: { module: store, action: franchise, page: 1 }
options: { suffix: .html, segment_separators: [ /,- ] }
requirements:
page: \d+正如您所看到的,模式非常简单--我定义了一个常量" number“,后面跟着一个破折号和一个变量:page,它只是一个数字。它后面是一个破折号和一个鼻涕虫(弹格可以包含字母数字值和破折号)。
url_for方法正确地生成了URL,但是当我尝试访问它时,我有一个通常的错误:
解析URL后的空模块和/或操作.
我试着用加号(并将其添加到segment_separators)替换:page和:slug之间的破折号,但两者都不起作用。
我不知道该怎么办了?有人已经遇到这种麻烦了吗?
发布于 2012-09-17 08:03:22
问题是您的slug有一些破折号,所以Symfony无法确定page和slug之间的分隔符在哪里。
如果您向slug添加了一个需求,要显式地告诉Symfony,段塞可以包含破折号,那么它将有效。
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\-]+"发布于 2012-09-19 12:00:43
我测试的情况越来越多,除了/,您不能使用多个分隔符
示例
已工作“/test-:测试”“->一个分隔符未工作”/测试-:test-:测试“多个工作”/测试/:test/:test“多个但”/
希望这些信息有帮助,谢谢。
https://stackoverflow.com/questions/12443600
复制相似问题