6

几乎完全按照蛋糕书的例子。

Router::mapResources('incidentReports');
Router::parseExtensions('json');

之前都

require CAKE . 'Config' . DS . 'routes.php';

我的控制器名为 IncidentReportsController

class IncidentReportsController extends AppController {

其中包含功能

index()
view($id)
add()
edit($id)
delete($id)

转到网址

www.myurl.com/incidentReports.json

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

转到网址

www.myurl.com/incidentReports/260.json

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

www.myurl.com/incidentReports/view/260.json

是否映射到 view() 函数并正常工作。但是,我的理解是 URL 中的“视图”不应该是必需的。

4

3 回答 3

4

有同样的问题。就我而言,我可以通过更改 URL 中的控制器名称来修复它。

没有工作:http://www.example.com/entityName.json
工作正常: http://www.example.com/entity_name.json

于 2013-06-25T20:46:06.913 回答
0

如果您的控制器在插件中,您还必须指定..

例如:Router::mapResources('Plugin.Controller');

于 2014-10-01T05:30:33.550 回答
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)
));
于 2013-02-27T14:50:08.340 回答