使用插件的Cakephp RESTful路由

时间:2016-05-13 13:43:09

标签: cakephp routing

使用Cake 2.x我试图将RESTful流量路由到我的Users控制器到我的UserManagement插件。

我的路线如下:

// 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']);

当我调用这个非常好的网址时,我收到以下错误:

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 个答案:

答案 0 :(得分:1)

遵循CakePHP约定优于配置方法,您可以使用插件语法指定插件,就像在其他地方一样,即插入插件名称并将其与控制器名称中的点分开

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

这当然也要求您在请求URL中使用插件名称,即

/user_management/users/51.json

而不仅仅是

/users/51.json

如果您想使用后者,但仍然连接到插件,那么您可以尝试prefix选项技巧,即提供默认值/,阻止路由器使用插件名称作为前缀(不要与实际prefix routing混淆。)

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

另见