我正在尝试使用基于骨干的前端来使用我的CakePHP应用程序。
我在 routes.php (以及其他一些路线)中有以下内容
Router::mapResources(array('rooms', 'comments'));
Router::parseExtensions();
现在使用像GET /rooms/XX.json
这样的东西很好,到目前为止一切都很好。我试图使用Backbone来删除评论。在我的应用程序引导程序中,我有以下内容:
Backbone.emulateHTTP = true;
因为我知道PHP与REST不太合适。因此,X-HTTP-Method-Override
根据请求设置为DELETE
。尽管我随后POST /comments/160.json
请X-HTTP-Method-Override DELETE
我得到以下回复:
{
"code":"404",
"url":"\/comments\/160.json","name":"Action CommentsController::view() could not be found."
}
无法找到CommentsController :: view()
对于我的生活,我不能让它发挥作用。
答案 0 :(得分:0)
似乎使用Router::mapResources(array(...));
无效。它适用于第一个控制器,但不适用于第二个控制器。因此,我已将 routes.php 文件更改为使用:
...
Router::mapResources('rooms');
Router::mapResources('comments');
...
现在似乎工作,这很奇怪,因为看CakePHP source code它应该循环遍历所有这些。