CakePHP 3.0 - 将参数传递给映射的 RESTful 资源
CakePHP 3.0 - Pass parameters to mapped RESTful resource
我正在尝试在 CakePHP 3 中生成路由。我有一个名为 ContractsController
的控制器,在其中我有一个操作 - details($id)
.
我想将 details($id)
操作映射到:
/api/contracts/details/id.json
我得到的结果如下(在 routes.php
中):
Router::scope('/api', function ($routes) {
$routes->extensions(['json']);
$routes->resources('Contracts', [
'map' => [
'details' => [
'action' => 'details',
'method' => 'GET'
]
]
]);
});
这允许我通过 /api/contracts/details.json
访问 details
操作,但我不知道如何用它传递 id。
我会这样做:
Router::scope('/api', function ($routes) {
$routes->extensions(['json']);
$routes->resources('Contracts', [
'map' => [
'details' => [
'action' => 'details',
'id' => '[0-9]+',
'method' => 'GET'
]
]
]);
});
如果这不起作用,请告诉我,我会运行 进行快速测试。
最后我用以下方法解决了这个问题:
Router::scope('/api', function ($routes) {
$routes->extensions(['json']);
$routes->resources('Contracts', [
'map' => [
'details/:id' => [
'action' => 'details',
'method' => 'GET'
]
]
]);
});
我正在尝试在 CakePHP 3 中生成路由。我有一个名为 ContractsController
的控制器,在其中我有一个操作 - details($id)
.
我想将 details($id)
操作映射到:
/api/contracts/details/id.json
我得到的结果如下(在 routes.php
中):
Router::scope('/api', function ($routes) {
$routes->extensions(['json']);
$routes->resources('Contracts', [
'map' => [
'details' => [
'action' => 'details',
'method' => 'GET'
]
]
]);
});
这允许我通过 /api/contracts/details.json
访问 details
操作,但我不知道如何用它传递 id。
我会这样做:
Router::scope('/api', function ($routes) {
$routes->extensions(['json']);
$routes->resources('Contracts', [
'map' => [
'details' => [
'action' => 'details',
'id' => '[0-9]+',
'method' => 'GET'
]
]
]);
});
如果这不起作用,请告诉我,我会运行 进行快速测试。
最后我用以下方法解决了这个问题:
Router::scope('/api', function ($routes) {
$routes->extensions(['json']);
$routes->resources('Contracts', [
'map' => [
'details/:id' => [
'action' => 'details',
'method' => 'GET'
]
]
]);
});