2010-01-11 104 views
0

我試圖創建一個默認的路由前綴。CakePHP路由,使用帶默認前綴的語言前綴

http://localhost/heb/mycont將離開希伯來頁面,而

http://localhost/mycont會導致英文頁面。

Router::connect('/:language/mycont',array('controller'=>'contname','action'=>'index'),array('language'=>'[a-z]{0,3}')); 

此代碼允許我使用0-3個字母的語言,但它仍然需要一種語言!

http://localhost/a/mycont會工作

http://localhost/mycont不起作用

任何想法如何解決呢? 它甚至可以使用默認路由嗎?

回答

0

我的解決辦法是簡單地設置了/一個特定的語言,而其餘的都被標記 /:語言/

這樣,我沒有做重複的路線。

2

讓我通過說明我不是一個路由專家,但在這種情況下,它是有道理的,你有什麼將不會工作,因爲路由期望的語言參數;如果路線不在那裏,路線將不匹配。

要「修復」(因爲它沒有真正損壞),您可能需要嘗試設置默認語言環境,並在AppController中覆蓋如果存在:language值。

+0

這看起來像一個快速和堅實的解決方案給我!我能想到的唯一的其他合理選項是重寫Router :: connect函數,以便它將設置缺省語言值(如果沒有)。但是這可能是矯枉過正。 – 2010-01-11 17:56:19