带有JSON输入的CakePHP API PUT

4 php api rest json cakephp

我正在使用CakePHP构建API.

我想从我的移动应用程序中使用PUT来更新数据.格式为JSON作为输入,但$ this-> data似乎为null.

我从我的应用程序中调用此url(在文档中指定):/ recipes/123.json

在我的"食谱"(或其他)中,我有以下控制器:

function edit($id = null) {

    $this->User->id = $id;
    if (empty($this->data)) {
        $this->data = $this->User->read();
        $message = array('StatusCode' => 999, 'ERROR' => "");
    } else {
        if ($this->User->save($this->data)) {
            $message = array('StatusCode' => 200, 'ErrorCode' => "");
        } else {
            $message = array('StatusCode' => 400, 'ErrorCode' => "UnknownError");
        }

    }

    $this->set(compact("message"));

    $this->set('albums', $this->User->Album->find('list'));
}
Run Code Online (Sandbox Code Playgroud)

我正确地在我的应用程序中收到JSON响应但是我得到了999错误 - 意味着$ this->数据为空.在我的控制器中的add函数中,它使用POST接收JSON - $ this->数据被正确分配.哦,如果我在编辑中使用POST而不是PUT - $ this->数据设置,但我无法保存数据..

那么..我该怎么做?:S

小智 5

插入来自luchomolina的链接 http://book.cakephp.org/2.0/en/controllers/request-response.html#accessing-xml-or-json-data

//Get JSON encoded data submitted to a PUT/POST action
$data = $this->request->input('json_decode');
Run Code Online (Sandbox Code Playgroud)

你得到了你的对象

$data->Model->field ...
Run Code Online (Sandbox Code Playgroud)