2015-06-18 45 views
0

我努力使訪問1個資源由兩個不同的路線:Symfony2的分身路由

api_v1: 
    type:  rest 
    prefix: /api/v1 
    resource: "@AppBundle/Resources/config/routing.yml" 

app: 
    type:  rest 
    prefix: /
    defaults: { _format: html } 
    resource: "@AppBundle/Resources/config/routing.yml" 

但永遠理智第二條路線將覆蓋第一。當調試:路由器,我得到:

get_products GET  ANY ANY /products.{_format} 
post_products POST  ANY ANY /products.{_format} 
//etc... 

但我期待

get_products GET  ANY ANY /api/v1/products.{_format} 
post_products POST  ANY ANY /api/v1/products.{_format} 
//etc... 

get_products GET  ANY ANY /products.{_format} 
post_products POST  ANY ANY /products.{_format} 
//etc 

什麼可能我是做錯了什麼?

+0

路由集合只是一個名稱爲key的路由數組,因此當您設置多個具有相同名稱的路由時,它們會彼此重疊。 – qooplmao

+0

任何建議如何解決這個問題?我不想爲api和前端應用程序提供不同的路線。 –

回答

1

你不能有2條同名的路由。在這種情況下,第二條路線將覆蓋以前定義的具有相同名稱的路線,這與您所描述的行爲完全相同。

讓2個URL指向完全相同的資源似乎也很錯誤。使用(永久)重定向來處理這種情況。