2014-10-01 65 views
0

我:CakePHP路由不適用於切換語言?

Router::connect('/:language/:controller/:action/*', array(), array('language' => 'en|zh')); 
Router::connect('/:language/:controller', array('action' => 'index'), array('language' => 'en|zh')); 
Router::connect('/:language', array('controller' => 'welcome', 'action' => 'index'), array('language' => 'en|zh')); 

我想補充一個路線如下圖所示:

Router::connect('/profile', array('controller' => 'userProfile', 'action' => 'index')); 

當我去:www.xxxxx.com/profile,它工作正常,但是當我去到www.xxxxx.com/en/profile,我收到一個錯誤是缺少控制器。 如何才能訪問www.xxxxx.com/en/profile而不出現任何錯誤?

請幫忙!先進的謝謝你的幫助!

+0

只是看到你的代碼,想一秒鐘什麼是在所有上述路線,但在新的一個失蹤。 – Abhishek 2014-10-01 05:05:44

+0

對不起,你的意思是?我英語不太好。 – Fiemhong 2014-10-01 05:09:27

回答

1

你只需要聲明專線兩個時間。

Router::connect('/profile', array('controller' => 'userProfile', 'action' => 'index')); 
Router::connect('/:language/profile', array('controller' => 'userProfile', 'action' => 'index'), array('language' => 'en|zh')); 

使用這種方式,讓我知道你的想法。

謝謝

+1

非常感謝你,現在工作。 – Fiemhong 2014-10-01 06:17:26

0

您可以使用

Router::connect('/:language/profile', array('controller' => 'userProfile', 'action' => 'index'), array('language' => 'en|zh')); 
+0

你的代碼產生像:www.xxxxx.com/en/userProfile不是www.xxxxx.com/en/profile是我想要的。它顯示的控制器名稱不是我們使用的別名。 – Fiemhong 2014-10-01 05:15:45

+0

將這條線放在三條線的上方,而不是底部,並且如果這條線起作用 – Abhishek 2014-10-01 05:26:49

+0

echo $ this-> Html-> url(array('controller'=>'userProfile','action'=>'index' ));這是我的用戶配置文件鏈接,所以第一次單擊它時會產生www.xxxxx.com/userProfile,但是當我用手將其重命名爲www.xxxxx.com/en/userProfile並刷新它的工作時,也可以更新www.xxxxx。 com/en/profile也是可行的。那麼您是否有任何解決方案可以在第一次點擊時將其更改爲www.xxxxx.com/profile? – Fiemhong 2014-10-01 06:13:27