2010-03-25 81 views
1

我的模型建立在非数字ID(36个字符的GUID具体)上。Symfony 1.4:如何在管理生成器中启用路由的非数字ID?

问题是,当我运行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错误表明我的路线是不匹配的。我匹配的网址是“/ account/8985329a-fd3b-41a0-b27b-f45c80d51765/edit”。看起来我对于给定路线的要求被忽略了。

我可以手动创建我的路线,但我宁愿不。

回答

4

因为\w不符合-字符。

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

+0

谢谢,[\ w - ] +工作 – 2010-03-25 14:27:33

1

[\w-]+没有为我工作,但'[\w-]+'做(symfony的1.4.10)。

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