2011-06-18 83 views
0

我真的不甚至不確定究竟如何尋找這一點,但我有一個URLCakePHP的 - 用通配符路由(未找到控制器錯誤)

site.com/forum/controller/action 

凡論壇是一個插件,我現在有它的路由與

Router::connect('/forum', array('plugin' => 'forum', 'controller' => 'home', 'action' => 'index')); 

但是成功的插件的論壇,我想補充一點,將任何頂級子目錄連接到插件論壇的路線。例如,

site.com/fish/controller/action 
site.com/bird/controller/action 

都將路由到論壇插件。同樣,

site.com/bird 

也將路由到論壇插件。這是我已經能夠拿出最好的,它沒有任何效果(我得到一個「FishController找不到」:

Router::connect('/*/:controller/:action/*', array('plugin' => 'forum')); 

最接近的答案,我能找到的基本上說,這也許是不可能的? http://cakephp.1045679.n5.nabble.com/Routes-with-wildcards-missing-controller-errors-td1263632.html

編輯:一些更多的試驗&錯誤後我嘗試這樣做:?

Router::connect('/:site/:controller/:action/*', array('plugin' => 'forum')); 

和它的作品有人能解釋這個

回答

1

http://api.cakephp.org/class/router#method-Routerconnect的文檔在解釋這個方面做得很好。

你所做的是創建一個自定義參數。 Cake使用一個數組來跟蹤參數,以及它如何知道傳遞了哪個控制器,動作和其他參數。路由器將用3個斜槓(/)將任何URL轉換爲$param['site'],$param['controller']$param['action']

從您的控制器中,您可以使用$this->params['site']檢索網站的值。

+0

再次感謝...再:) –