在Symfony 1.4的url中使用破折号

时间:2012-09-16 00:45:05

标签: symfony1 routing symfony-1.4 separator

我目前正在尝试在网址中使用破折号作为段分隔符与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),但它既不起作用。

我不知道该怎么办?有没有人遇到过这种麻烦?

2 个答案:

答案 0 :(得分:1)

问题是您的slug有一些破折号,因此Symfony无法确定pageslug之间的分隔符在哪里。

如果你向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”不仅仅是“/”

希望这些信息有用 谢谢..