CakePHP REST基本映射无法按预期工作

use*_*338 6 mapping rest routing cakephp

几乎完全遵循Cake Book示例.

Router::mapResources('incidentReports');
Router::parseExtensions('json');
Run Code Online (Sandbox Code Playgroud)

两者之前

require CAKE . 'Config' . DS . 'routes.php';
Run Code Online (Sandbox Code Playgroud)

我的控制器名为IncidentReportsController

class IncidentReportsController extends AppController {
Run Code Online (Sandbox Code Playgroud)

其中包含功能

index()
view($id)
add()
edit($id)
delete($id)
Run Code Online (Sandbox Code Playgroud)

转到URL

www.myurl.com/incidentReports.json
Run Code Online (Sandbox Code Playgroud)

按预期将请求发送到index()函数.

转到URL

www.myurl.com/incidentReports/260.json
Run Code Online (Sandbox Code Playgroud)

应映射到view()函数,但尝试映射到不存在的260()函数.

www.myurl.com/incidentReports/view/260.json
Run Code Online (Sandbox Code Playgroud)

映射到view()函数并正常工作.但是,我的理解是URL中的"视图"不应该是必要的.

Dun*_*zzz 0

根据文档,您所做的一切都是正确的,所以我不确定。尝试将其(应启用的路由)也放入您的路由中。

Router::resourceMap(array(
    array('action' => 'index', 'method' => 'GET', 'id' => false),
    array('action' => 'view', 'method' => 'GET', 'id' => true),
    array('action' => 'add', 'method' => 'POST', 'id' => false),
    array('action' => 'edit', 'method' => 'PUT', 'id' => true),
    array('action' => 'delete', 'method' => 'DELETE', 'id' => true),
    array('action' => 'update', 'method' => 'POST', 'id' => true)
));
Run Code Online (Sandbox Code Playgroud)