2012-04-16 39 views
1

我正在CakePHP中開發一個簡單的CMS,現在它有4個控制器(菜單,網站,角色,用戶),我想重寫一個控制器,但我是有問題。Url重寫一次控制器 - 蛋糕2.0

我使用所有的行動只是作爲管理員像管理admin_view目的,admin_add ...... 除了siteController(此控制器僅適用於前端目的)

我需要www.example.com/ site/view/something_here必須替換爲www.example.com/something_here - 這將顯示在前端。

我在routes文件添加了一行:

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

但添加這個我能不能使用其它控制器之後。

我再次添加上述前行一些行:

Router::connect('/admin/Menus/*', array('controller' => 'menus', 'prefix' => 'admin')); 

同所有其他控制器,但如果我的網址發送的任何行動或ID它不會工作。 像 - http://www.exmple.com/admin/menus/[view/1] - 方括號內的那個不起作用。

任何想法重寫這個?

回答

1

我剛剛在another thread上回答了一個類似的問題。

要在'/ *'之前放置管理員控制器路由 - 路由是正確的想法,但是您執行此操作的方式路由器無法分配操作。你可以使用下面的每個控制器:

Router::connect('/admin/Menus/:action/*', array('controller' => 'menus', 'prefix' => 'admin')); 

或者你可以使用default prefix-routing routes,所以你不必添加路由爲每個新的控制器。

// prefix routing default routes with admin prefix 
Router::connect("/admin/:controller", array('action' => 'index', 'prefix' => 'admin', 'admin' => true)); 
Router::connect("/admin/:controller/:action/*", array('prefix' => 'admin', 'admin' => true)); 
+0

非常感謝,它幫助,我修好了。 – 2012-04-21 04:54:55

+0

如果解決了您的問題,請接受答案。 – 2012-05-02 19:23:07