如何在 Recess Framework 上添加 HTTP 标头。
我试试这个。
header('HTTP/1.1 204 无内容');
但它不起作用。
谢谢。
如何在 Recess Framework 上添加 HTTP 标头。
我试试这个。
header('HTTP/1.1 204 无内容');
但它不起作用。
谢谢。
在这种情况下,为特定响应添加 HTTP 标头的最佳方法是创建新的响应类型。这将让您以正常方式从控制器方法返回(如 return $this->ok())并让框架添加标题。我敢打赌,您的 Recess 版本有 No Content 响应,但它不在 AbstractController 中,因此您无法访问它。请按照以下步骤进行检查。
查看凹槽/目录。我们将修改几个文件。
首先,创建recess/http/responses/NoContentResponse.class.php 文件,如果它不存在(它很可能存在于您的版本中)。使用此代码:
<?php
Library::import('recess.http.Response');
Library::import('recess.http.ResponseCodes');
class NoContentResponse extends Response {
public function __construct(Request $request) {
parent::__construct($request, ResponseCodes::HTTP_NO_CONTENT,
ResponseCodes::getMessageForCode(ResponseCodes::HTTP_NO_CONTENT));
}
}
?>
确保 HTTP_NO_CONTENT 响应代码在凹槽/http/ResponseCodes.class.php 文件中(它应该已经在其中)。
现在,您需要确保可以从控制器访问响应。将以下代码添加到凹槽/框架/AbstractController.class.php 文件中:
protected function noContent() {
Library::import('recess.http.responses.NoContentResponse');
$response = new NoContentResponse($this->request);
return $response;
}
这将让您从控制器返回 $this->noContent() ,就像任何其他响应一样。祝你好运!