2016-05-13 57 views
2

使用Cake 2.x我試圖將RESTful流量路由到我的用戶控制器到我的UserManagement插件。Cakephp RESTful路由與插件

我的路線如下:

// re-redirect root traffic to login 
Router::connect('/', array('plugin'=>'UserManagement','controller' => 'Users', 'action' => 'login')); 

CakePlugin::routes(); 
Router::mapResources(['users']); 

Router::parseExtensions(); 

我也試過:

Router::mapResources(['UserManagement']); 

當我打電話resful URL我收到以下錯誤:

users/1.json 

{ 
    "code": 404, 
    "name": "Action UsersController::51() could not be found.", 
    "message": "Action UsersController::51() could not be found.", 
    "url": "\/users\/51.json" 
} 

在此先感謝。

回答

1

繼CakePHPs約定優於配置方法,您可以指定插件,像你做其他任何地方,使用插件的語法,即在前面加上插件的名稱,並將其與一個點從控制器名稱

Router::mapResources('UserManagement.Users'); 

這將分開當然還需要你在請求URL中使用的插件名稱,即

/user_management/users/51.json 

,而不是隻

/users/51.json 

如果你想使用後者,但仍然連接到插件,那麼你可以嘗試prefix選項技巧,即提供缺省值/,這將停止路由器使用插件名稱作爲前綴(不要與實際的prefix routing混淆)。

Router::mapResources('UserManagement.Users', array(
    'prefix' => '/' 
)); 

又見

+0

謝謝你,但仍然無法正常工作 - 404 「名字」:「行動UsersController :: 51( )找不到。「, –

+0

@AlanA可能是因爲你缺少插頭在URL中的名字,即你正在訪問'/ users/51.json',而不是所需的'/ user_management/users/51.json'。如果你以前的格式是以前的格式,即在連接插件時使用'/ users/...',那麼請在你的問題中指出。 – ndm

+0

是的,我只是在URL中使用控制器名稱寫在我的問題。使用插件名稱工作雖然:)如果我想只是使用'用戶的,而不是在url中的插件名稱也是可能的? –