CakePHP 3嵌套资源无法正常工作

时间:2015-06-03 23:16:35

标签: cakephp cakephp-3.0

对于相当含糊的标题表示道歉,但我不确定如何描述我遇到的问题。

我有一个' admin'配置前缀路由,并在该前缀内我想设置嵌套资源。我有以下设置:

Groups hasMany Users
Users hasMany Items
Items hasMany Comments

我希望我的网址能够反映群组,用户,项目,评论等之间的关系。例如,以下是一些示例网址:

/admin/groups (list all groups)
/admin/groups/1 (view group with id 1)
/admin/groups/1/users (list all users for group with id 1)
/admin/groups/1/users/12 (view user with id 12 from group with id 1)
/admin/groups/1/users/12/items (list all items belonging to user with id 12)
...you get the idea.

以下是我的routes.php文件的相关部分:

Router::scope('/', function ($routes) {

    $routes->prefix('admin', function ($routes) {

        $routes->resources('Groups', function ($routes) {
            $routes->resources('Users', function ($routes) {
                $routes->resources('Items', function ($routes) {
                    $routes->fallbacks('InflectedRoute');
                });
                $routes->fallbacks('InflectedRoute');
            });
            $routes->fallbacks('InflectedRoute');
        });
        $routes->fallbacks('InflectedRoute');
    });

    $routes->fallbacks('InflectedRoute');
});

根据documentation,这应该会自动创建我想要的路线,在某种程度上它会这样做。例如,转到/ admin / groups /将调用GroupsController.php的index()函数,而/ admin / groups / 1将调用view($ id)函数。偶数/ admin / groups / 1 / users将起作用(它调用UsersController.php的index()函数)。但是,就目前而言。

如果我转到/ admin / groups / 1 / users / 1,我收到以下错误消息:

 The action 1 is not defined in UsersController

 Error: Create UsersController::1() in file: src/Controller/Admin/UsersController.php.

似乎嵌套在某种程度上起作用,但并不像我期望的那样,而且不像文档所说的那样。

任何帮助都将不胜感激。

0 个答案:

没有答案
相关问题