2013-04-27 66 views
1

我試圖前綴單個控制器內的所有路由與_locale,但到目前爲止,我還沒有成功:語言環境中路由前綴

/** 
* @Route("/{_locale}/events", requirements={"_locale": "en"}) 
* @Route("/{_locale}/evenements", requirements={"_locale": "fr"}) 
*/ 
class SomeController extends Controller{ 

    /** 
    * @Route("/", name="events") 
    */ 
    public function indexAction(){ 
     ... 
    } 

    ... 
} 

route:debug甚至沒有列出了第二@Route前綴的網址。我嘗試刪除_locale slu al,但仍然無法找到路線。

我在這裏錯過了什麼嗎?甚至有可能有多個前綴?

任何幫助將不勝感激......

+1

你爲什麼不使用[JMSI18nRoutingBundle(https://github.com/schmittjoh/JMSI18nRoutingBundle)? – Crozin 2013-04-27 16:03:02

+0

是的,我當時(目前是禁用的),但後來我意識到它不支持slu translation翻譯 - 不是這種特殊情況。也許問得太多了? :)我需要的路線翻譯的要求'... – 2013-04-27 16:10:29

+0

@jperovic最近發佈了一個[類似問題](https://github.com/symfony/symfony/issues/7724)。您可以嘗試將Symfony降級到2.1。或者,您可以嘗試在單獨的配置文件中定義多個路由 - 值得一試。 – gilden 2013-04-28 00:00:55

回答

0

首先,你已經在你的文件Ressources /配置/ routing.yml中,您使用註解此控制器界定?

#file Ressources/config/routing.yml 
blog: 
    resource: "@YourBundle/Controller" 
    type:  annotation 

你也可以定義你的路由爲:

/** 
* @Route("/en/events", defaults={"_locale": "en"}) 
* @Route("/fr/evenements", defaults={"_locale": "fr"}) 
*/ 
+0

我在一個使用這個「手動」解決方案的項目上,在嘗試了JMSI18nRoutingBundle之後,是的,這個捆綁包是我推薦的一個很好且簡單的解決方案。 – Alcalyn 2014-03-17 14:19:29