2013年2月5日火曜日

CakePHP 2.xで JSONを返す

リクエストとレスポンスオブジェクト — CakePHP Cookbook v2.x documentation
CakeResponse は次のような共通のレスポンスをラップするためのインターフェイスを提供します。:

リダイレクトのためにヘッダを送ること。
コンテンツタイプヘッダを送ること。
ヘッダを送ること。
レスポンスボディを送ること。

Googleで検索すると、header()を使ったり $this->header() を使ったり beforeFilter() を使ったりする古い記述に惑わされるが、実際にはControllerにこれだけ書くだけでいいみたい。Viewも要らない。
public function action_name() {
    $arr = array('jsonの' => '中身');
    return new CakeResponse(array('type' => 'json', 'body' => json_encode($arr)));
}

シンプルだ。
Content-Typeもapplication/jsonになる。
CakeResponseは、他にもブラウザキャッシュの制御もできるみたい。


0 件のコメント:

ブログ アーカイブ

カテゴリー