CakePHP 3 嵌套路由设置中缺少路由
CakePHP 3 missing routes in nested routes setup
我正在尝试连接 CakePHP 3 中的嵌套路由。
我正在尝试实现以下路线(括号内为当前状态):
GET /api/users/:id/events (Working)
POST /api/users/:id/events (Missing Route)
GET /api/events/:id (Working)
PATCH /api/events/:id (Missing Route)
DELETE /api/events/:id (Not tested)
在我的 routes.php 文件中,我有以下内容:
Router::prefix('api', function ($routes) {
$routes->connect('/token', ['controller' => 'Users', 'action' => 'token']);
$routes->resources('Users', function ($routes) {
$routes->resources('Events', [
'only' => ['index', 'add']
]);
});
$routes->resources('Events', [
'only' => ['view', 'patch', 'delete']
]);
});
不工作的路由抛出 Cake\Routing\Exception\MissingRouteException
错误页面还显示了连接路线的列表,但我想要的路线不存在。是否可以按照我尝试过的方式创建嵌套资源,或者我如何能够在不手动连接每条路线的情况下连接所需的路线?
再次仔细查看文档,only
选项不支持 add
或 patch
值,除非您使用这些添加自定义路由默认资源映射的名称。
默认只支持以下资源路由:
index
(= GET
)
view
(=GET
和 /:id
)
create
(= POST
)
update
(=PUT
和 PATCH
与 /:id
)
delete
(=DELETE
与/:id
)
所以你想要使用的是 index
和 create
用于嵌套的 Users/Events
资源路由,以及 view
、update
和 delete
对于非嵌套 Events
资源路由。
另见
我正在尝试连接 CakePHP 3 中的嵌套路由。
我正在尝试实现以下路线(括号内为当前状态):
GET /api/users/:id/events (Working)
POST /api/users/:id/events (Missing Route)
GET /api/events/:id (Working)
PATCH /api/events/:id (Missing Route)
DELETE /api/events/:id (Not tested)
在我的 routes.php 文件中,我有以下内容:
Router::prefix('api', function ($routes) {
$routes->connect('/token', ['controller' => 'Users', 'action' => 'token']);
$routes->resources('Users', function ($routes) {
$routes->resources('Events', [
'only' => ['index', 'add']
]);
});
$routes->resources('Events', [
'only' => ['view', 'patch', 'delete']
]);
});
不工作的路由抛出 Cake\Routing\Exception\MissingRouteException
错误页面还显示了连接路线的列表,但我想要的路线不存在。是否可以按照我尝试过的方式创建嵌套资源,或者我如何能够在不手动连接每条路线的情况下连接所需的路线?
再次仔细查看文档,only
选项不支持 add
或 patch
值,除非您使用这些添加自定义路由默认资源映射的名称。
默认只支持以下资源路由:
index
(=GET
)view
(=GET
和/:id
)create
(=POST
)update
(=PUT
和PATCH
与/:id
)delete
(=DELETE
与/:id
)
所以你想要使用的是 index
和 create
用于嵌套的 Users/Events
资源路由,以及 view
、update
和 delete
对于非嵌套 Events
资源路由。
另见