2011-12-22 3 views
4

Я создаю API, используя CakePHP.CakePHP API PUT с входом JSON

Я хочу использовать PUT из своего мобильного приложения для обновления данных. Формат является JSON в качестве входных данных, но $ this-> data кажется нулевым.

Я называю этот адрес (как указано в документации) из моего приложения: /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')); 
} 

Я правильно получаю ответ JSON в своем приложении, однако я получаю ошибку 999 - это означает, что данные $ this-> пусты. В моей функции добавления в моем контроллере, где он получает JSON, используя POST - данные $ this-> присваиваются правильно. И о, если я использую POST вместо PUT в моем редактировании - данные $ this-> устанавливаются, но я не могу сохранить данные.

Итак, как это сделать? : S

+0

Сделайте print_r() из $ this-> params и посмотрите, где на самом деле заканчиваются данные JSON; я не верю, что данные из PUT будут доступны в $ this-> data (только данные, которые были опубликованы) ... –

ответ

Смежные вопросы