0
我想創建一個RESTful API與CakePHP,將POST請求發送到/users.json時將添加一個用戶。用戶創建後,客戶端將被重定向到帶有用戶的JSON表示的頁面。我有用於控制器的代碼是:REST API與CakePHP
class UsersController extends AppController {
public $components = array('RequestHandler');
public function view($id) {
$user = $this->User->findById($id);
$this->set(array(
'user' => $user['User'],
'_serialize' => 'user'
));
}
public function add() {
if ($this->User->save($this->data)) {
$this->redirect(array('action' => 'view', 1)); //using 1 just to test
} else {
print_r($this->User->validationErrors);
$this->set(array(
'errors' => $this->User->validationErrors,
'_serialize' => array('errors')
));
}
}
}
我已經加入路由器:: mapResources( '用戶')和路由器:: parseExtensions( 'JSON')到routes.php文件。但是,當我使用Chrome的REST控制檯插件發送發佈請求時,我收到了「{errors:[]}」的響應,並且沒有創建新用戶。當我使用curl時,會創建一個用戶,但是之後我沒有得到用戶的json表示。任何想法發生了什麼?
你能還使用像小提琴手的工具,看看發生了什麼事情在下面的請求? – mellamokb
好吧,我沒有通過正確的參數。現在我得到「未找到UsersController :: view()的視圖」。我相信這是因爲重定向到/ users/1而不是/users/1.json。 – shoopdelang
我不會建議在REST調用中重定向,只需在您的控制器中覆蓋重定向()以便在出現json請求的情況下呈現相同的動作 –