cakephp rest delete missing template 报错

cakephp rest delete missing template error

我的控制器中有一个 REST 删除操作,看起来很简单:

$asset = $this->Assets->get($id);
if ($this->Assets->delete($asset)) {
    $this->response->statusCode(204);
}

在控制器中我已经完成了初始化

$this->RequestHandler->renderAs($this, 'json');

但是由于某些原因,尽管是 REST API,但我收到错误 "Template file \"Assets/json/delete.ctp\" is missing.",

Cake book 建议 response->statusCode 就足够了,为什么要尝试获取模板以供查看?

(v3)

Return响应对象

设置状态码本身是不够的;所做的就是在响应对象上设置状态代码。然后代码仍会通过 normal render process:

// Dispatcher code
$response = $controller->invokeAction();
...
if (!$response && $controller->autoRender) {
    $response = $controller->render(); // Code execution reaches here
...

要让调度过程绕过普通视图渲染,return 响应对象:

function foo() 
{
    $this->response->setStatusCode(204);
    return $this->response;
}