2016-11-18 29 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