2016-11-18 44 views
2

我试图看看如何将前缀放在路由路径中。可能在symfony中的路由路径中使用前缀或const

#routing.yml 

app_news: 
    path:  /panel/news 
    defaults: { _controller: NewsBundle:Default:index } 

我有一些像这样的路线,如果我想在未来改变的路径名称,例如

/管理/新闻/控制/新闻

我可以在其他配置yml文件中保存前缀并在需要时更改它吗?

+0

这是一个包或应用程序的路由文件吗? – Matteo

+1

您可以为路径文件中的[文档中的此处](http://symfony.com/doc/current/routing/external_resources.html#prefixing-imported-routes) – Matteo

+0

中的所有路由指定前缀(一捆一个路由文件) –

回答

0

在这种情况下,我有一些像这样的

#/app/config/routing.yml 
users: 
    resource: "@UsersBundle/Resources/config/routing.yml" 
    prefix:  /panel/ 

news: 
    resource: "@NewsBundle/Resources/config/routing.yml" 
    prefix:  /panel/ 

现在,阅读后的答案,看看其他人的方式,我把前缀,我设置了前缀的VAR

#/app/config/routing.yml 
users: 
    resource: "@UsersBundle/Resources/config/routing.yml" 
    prefix:  %panel_path% 

news: 
    resource: "@NewsBundle/Resources/config/routing.yml" 
    prefix:  %panel_path% 

而且我将%panel_path%var值设置为

#/app/config/config.yml 
parameters: 
    panel_path: /panel 
+0

尽管这可能会起作用,但我强烈建议您使用Symfony工具而不是自我实现。这将使项目更加可维护。 –

3

把你所有的前缀路线上相同的路由文件,然后将其添加到使用资源前缀属性你的包路由:

applications: 
    resource: "@NewsBundle/Resources/config/routing_news.yml" 
    prefix: /panel 

另外,如果你对你的路线你的控制器。您可以使用注释属性做同样的伎俩:

applications: 
    resource: '@NewsBundle/Controller/NewsController' 
    type: annotation 
    prefix: /panel 

大成取决于你的Symfony的版本发生变化,所以我建议您访问Symfony documentation