cakephp 3方法在休息路线中删除

时间:2017-04-19 14:48:58

标签: php rest cakephp

在routes.php中我添加

 $routes->extensions(['json']);
 $routes->resources('News');

当在邮递员中我输入网址并选择方法GET时,框架会将我重定向到index()操作,如果我选择方法POST框架将我重定向到add()方法,但如果我选择方法DELETE,我会再次转到index()。如果我选择方法DELETE

,如何进行delete()操作?

////////////////// 我理解我的问题。一切顺利。问题在我的网址中。我选择了方法Delete,我的网址是rest.app/api/news。这就是为什么框架会将我重定向到index()行动但是如果我放rest.app/api/news/1 并获取方法Delete我转到delete()行动

1 个答案:

答案 0 :(得分:1)

REST应该按如下方式工作:

GET / users列出用户。

GET / users / 5显示用户5。

POST / users添加用户。

DELETE / users / 5删除用户5。

在您的控制器操作中,检查请求方法,并调用相应的代码。

这是我自己的一个休息控制器中的索引动作:

public function indexAction()
{
    switch ($_SERVER['REQUEST_METHOD']) {
        case 'POST':
            $json = $this->createRecord();
            break;
        case 'PUT':
        case 'PATCH':
        case 'DELETE':
        $json = $this->sendJSONResponse(array('error' => 'Invalid HTTP Method, did you send an ID?'), self::RESPONSE_NOT_FOUND);
            break;
        case 'GET':
        default:
            $json = $this->listRecords();
            break;
    }
    return $json;
}