对于相当含糊的标题表示道歉,但我不确定如何描述我遇到的问题。
我有一个' 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.
似乎嵌套在某种程度上起作用,但并不像我期望的那样,而且不像文档所说的那样。
任何帮助都将不胜感激。