2011-06-23 34 views
0

當涉及到默認值和持久參數時,我對CakePHP(1.3)路由有點遺憾。CakePHP:在運行時向路由器添加默認值

我的當前項目中讀取從URL(example.com/en/pagename /)的第一個參數的當前語言和情況的語言不可用,它會嘗試猜從會話或cookie和語言如果失敗,則回退到默認配置。

在此之後,使用Router::url()生成的所有網址都應包含language參數(即,如果未在參數中重寫,則使用默認語言)。問題是,我不知道一個乾淨的方式來實現這一點。是否有一個或我需要添加自己的黑客?在不影響所有其他路線的情況下應用這些攻擊的最佳位置是什麼?

我可能可以通過重定向來解決這個問題,它可以填寫缺少的參數,但我想了解更多有關CakePHP中的路由的知識,我覺得這些默認值在其他應用程序中也可能有用。

回答

0

我通過使語言參數可選,並在appControllerbeforeRender()檢查它解決了這個問題。如果語言代碼不存在,瀏覽器將被重定向到添加了語言代碼的當前網址。