1

我的模型建立在非数字 ID(具体为 36 个字符的 GUID)之上。

问题是当我运行 symfony 1.4 管理生成器时,它假定我所有的 ID 都是数字并应用默认路由要求。

我尝试按照此处的建议提供特定的路由要求:http: //www.codemassacre.com/2009/04/27/symfony-12-admin-with-custom-primary-key/在我的情况下,routing.yml 的片段是:

organization:
  class: sfPropelRouteCollection
  options:
    model:                Organization
    module:               account
    prefix_path:          /account
    column:               id
    with_wildcard_routes: true
  requirements:
    id: \w+

但是,我仍然收到 404 错误,表明我的路线不匹配。我匹配的 URL 是“/account/8985329a-fd3b-41a0-b27b-f45c80d51765/edit”。看起来我对给定路线的要求被忽略了。

我可以手动创建路线,但我不想这样做。

4

2 回答 2

4

因为\w不匹配-字符。

所以你必须替换\w+为,比如说,[\w-]+或者[\da-f-]+(更严格的正则表达式)

于 2010-03-25T14:01:52.407 回答
1

[\w-]+对我不起作用,但'[\w-]+'确实如此(symfony 1.4.10)。

我认为 symfony/php 将[]语法解释为数组规范。

于 2011-03-28T23:43:18.447 回答