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

时间:2013-02-27 14:44:16

标签: rest cakephp routing mapping

几乎完全遵循Cake Book的例子。

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中的“视图”不应该是必要的。

3 个答案:

答案 0 :(得分:3)

有同样的问题。在我的情况下,我可以通过更改URL中的控制器名称来修复它。

无效:http://www.example.com/entityName.json
工作正常:http://www.example.com/entity_name.json

答案 1 :(得分:0)

根据documentation,你已经做好了一切,所以我不确定。尝试在你的路线中放置这个(应该启用的路线)。

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)
));

答案 2 :(得分:0)

如果你的控制器在一个插件中,你也必须指定..

e.g:    路由器:: mapResources(' Plugin.Controller&#39);