Cake3 如何为休息路线捕获路径 属性 中的所有字符
Cake3 How to capture all characters in path property for rest routes
所以,我有一段代码,用于我的路线,如下所示:
Router::scope('/v1', function (RouteBuilder $routes) {
$routes->resources( 'Files', [
'map' => [
'index' => ['action' => 'index', 'method' => 'GET', 'path' => ''],
'create' => ['action' => 'add', 'method' => 'POST', 'path' => ''],
'view' => ['action' => 'view', 'method' => 'GET', 'path' => ':id'],
'update' => ['action' => 'edit', 'method' => ['PUT', 'PATCH'], 'path' => ':id'],
'delete' => ['action' => 'delete', 'method' => 'DELETE', 'path' => ':name'],
]
]);
});
我有一个 URL 比如:http://192.168.1.197/v1/files/13625a1ddedcbc2011-40115501.jpg
我希望 13625a1ddedcbc2011-40115501.jpg
成为您在上面的 'delete' => ['action' => 'delete', 'method' => 'DELETE', 'path' => ':name']
路由中看到的 :name
参数,但是,无论我做什么(我什至在这里尝试过正则表达式)我得到错误:
Too few arguments to function App\Controller\FilesController::delete(), 0 passed in
我已经阅读了关于它的文档可能一千遍了:https://book.cakephp.org/3.0/en/development/routing.html 但我不知道如何阅读。
我查看了这个答案,关于如何使用它有点含糊,这意味着我将所有路线更改为如下所示:How to give string in the url in RESTful api in Cakephp? 我不想这样做。
如何获取这个参数?
我也有一些 "fun" 地图,然后放弃了,然后这样做了:
$routes->connect('/:model/:foreignKey/:commentId', [
'plugin' => 'Burzum/Comments',
'controller' => 'Comments',
'action' => 'edit',
'_method' => 'PUT'
], [
'pass' => [
'model',
'foreignKey',
'commentId'
],
'_ext' => null,
'model' => $allowedModels,
'commentId' => $idRegex,
'foreignKey' => $idRegex,
]);
让我知道您是否清楚这个概念。如果不是我会根据您的实际情况进行更改。
所以,我有一段代码,用于我的路线,如下所示:
Router::scope('/v1', function (RouteBuilder $routes) {
$routes->resources( 'Files', [
'map' => [
'index' => ['action' => 'index', 'method' => 'GET', 'path' => ''],
'create' => ['action' => 'add', 'method' => 'POST', 'path' => ''],
'view' => ['action' => 'view', 'method' => 'GET', 'path' => ':id'],
'update' => ['action' => 'edit', 'method' => ['PUT', 'PATCH'], 'path' => ':id'],
'delete' => ['action' => 'delete', 'method' => 'DELETE', 'path' => ':name'],
]
]);
});
我有一个 URL 比如:http://192.168.1.197/v1/files/13625a1ddedcbc2011-40115501.jpg
我希望 13625a1ddedcbc2011-40115501.jpg
成为您在上面的 'delete' => ['action' => 'delete', 'method' => 'DELETE', 'path' => ':name']
路由中看到的 :name
参数,但是,无论我做什么(我什至在这里尝试过正则表达式)我得到错误:
Too few arguments to function App\Controller\FilesController::delete(), 0 passed in
我已经阅读了关于它的文档可能一千遍了:https://book.cakephp.org/3.0/en/development/routing.html 但我不知道如何阅读。
我查看了这个答案,关于如何使用它有点含糊,这意味着我将所有路线更改为如下所示:How to give string in the url in RESTful api in Cakephp? 我不想这样做。
如何获取这个参数?
我也有一些 "fun" 地图,然后放弃了,然后这样做了:
$routes->connect('/:model/:foreignKey/:commentId', [
'plugin' => 'Burzum/Comments',
'controller' => 'Comments',
'action' => 'edit',
'_method' => 'PUT'
], [
'pass' => [
'model',
'foreignKey',
'commentId'
],
'_ext' => null,
'model' => $allowedModels,
'commentId' => $idRegex,
'foreignKey' => $idRegex,
]);
让我知道您是否清楚这个概念。如果不是我会根据您的实际情况进行更改。