Recess Framework に HTTP ヘッダーを追加するにはどうすればよいですか。
私はこれを試します。
header('HTTP/1.1 204 No Content');
しかし、それは機能していません。
ありがとう。
Recess Framework に HTTP ヘッダーを追加するにはどうすればよいですか。
私はこれを試します。
header('HTTP/1.1 204 No Content');
しかし、それは機能していません。
ありがとう。
この場合、特定の応答に 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 応答コードがrecess/http/ResponseCodes.class.phpファイルにあることを確認してください(すでにそこにあるはずです)。
ここで、コントローラーから応答にアクセスできることを確認する必要があります。以下のコードを reduction/framework/AbstractController.class.php ファイルに追加します。
protected function noContent() {
Library::import('recess.http.responses.NoContentResponse');
$response = new NoContentResponse($this->request);
return $response;
}
これにより、他のレスポンスと同様に、コントローラーから $this->noContent() を返すことができます。幸運を!