2

我目前正在尝试在 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+

如您所见,该模式非常简单,我定义了一个常量“数字”,后跟一个破折号和一个变量 :page,它只是一个数字。后面是一个破折号和一个 slug(slug 也可以包含字母数字值和破折号)。

该 URL 是由 url_for 方法正确生成的,但是当我尝试访问它时,我遇到了通常的错误:

解析 URL 后的空模块和/或操作...

我试图用加号替换 :page 和 :slug 之间的破折号(并将其添加到 segment_separators 中),但它也不起作用。

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

4

2 回答 2

1

问题是你slug有一些破折号,所以 Symfony 无法确定pageand之间的分隔符在哪里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\-]+"
于 2012-09-17T08:03:22.850 回答
1

我越来越多地测试这种情况你不能使用多个分隔符,除了/

例子

工作了 "/test-:test" -> 一个分隔符没有工作 "/test-:test-:test" 不止一个工作了 "/test/:test/:test" 不止一个但是 "/"

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

于 2012-09-19T12:00:43.987 回答