2013-04-06 32 views
1

我试图启用所有路线的可选区域设置占位符而不重复所有内容。我的路线如下所示:symfony /路由 - 导入yml资源两次

site: 
    prefix:/
    resource: "routes-site.yml" 

site_i18n: 
    prefix: /{_locale} 
    resource: "routes-site.yml" 
    defaults: {_locale: pl} 
    requirements: 
     _locale: 'en' 

但是我只获得了site_i18n的工作。为什么我无法多次导入相同的资源? 它是Symfony 2.2

回答

1

因为路由具有相同的路由名称,所以后面的导入覆盖第一个路由。 看一看:BeSimpleI18nRoutingBundle。它甚至可以本地化整个路径,但在这种情况下,您只需要本地化前缀。

+0

为此添加单独的包对我来说太昂贵了。我正在寻找内置解决方案。 – spajak 2013-04-06 10:09:02

+0

贵是什么意思?再加载一个(写得很好)的bundle对性能影响很小(几乎没有)。实际上,当你使用bundle时 - 在加载路由时,会被缓存。它实际上只增加了自定义路由加载。 – 2013-04-06 10:16:22

+0

任何额外的代码都需要花费时间(例如在生成网址时)。但是在这种情况下也许没有更好的解决方案。然后我会查看源代码。 – spajak 2013-04-06 10:53:31