CakePHPでAjaxを使う時、JSONを使ってjQueryとデータをやり取りすることが多くなると思います。
CakePHPに簡単にJSONの出力ができる仕組みが搭載されていますので、これからその設定方法について説明します。
routes.php AppController.phpへ追記
JSONを使うには2つのファイルへの追記が必要になっています。
routes.php
app > Config > routes.phpを開き、以下のコードを追記します。
Router::parseExtensions(‘json’);
これで JSON と XML が使えるようになります。
AppController.php
app > Controller > AppController.phpを開き、以下のコードを追記します。
public $components = array(‘RequestHandler’);
サイト全体で使う場合は AppController.php に記載し、個別のコントローラーで使う場合は利用するコントローラーに記載するようにします。
コントローラーでJSONを出力
function json_test(){ $this->set('posts', $this->paginate()); //JSONデータの出力 $this->viewClass = 'Json'; $this->set('_serialize', array('posts')); }
$this->set(‘_serialize’, array(‘posts’)); がPHPの配列のデータをJSONに変換している処理です。
$this->viewClass = ‘Json’; を記載すると、通常使われるビューは使わずに真っ白い画面にJSONのデータだけが出力されるようになります。