m(__)m申し訳ないです。この記事は間違ってました。CakePHPとAngularJSでWebアプリを作る。その2に修正した内容を書いたのでそちらを読んで下さい。
CakePHPでJSONを吐き出すページを作る
前提
ひと通り基本的なCakephpのサイトが出来てる前提で進めます。
データベースにUsersテーブルがあって、Userモデル、Usersコントローラは作ってあるとします。
表示するURLを決める
CakePHPのお作法的にどういったURLが正しいか分かりませんが、以下の様にきめました。
http://sample.com/api/users/get/list?id=123「api」部分はプレフィックスです。core.phpに以下の部分のコメントアウトをとって「api」を追加しました。
Configure::write('Routing.prefixes', array('admin','api'));これで「UsersController」の「api_get」アクションに内容を書いていきます。
JSONで吐き出すようにコントローラを作成
UsersController.phpに以下を記述
public function api_get($type = null){ // 引数チェック。空か、list、all以外だったら404エラー if (empty($type) || !in_array($type,array('list','all'))){ throw new NotFoundException('このページはありません。'); } // タイプで処理を切り分け。そのままsetする。 if ($type == 'list'){ $this->set('data',$this->User->find('list')); } if ($type == 'all'){ $this->set('data',$this->User->find('all')); } // URLのクエリをとる $id = $this->request->query['id'] // 試しに適当にsetする。 $this->set('test','hogehoge'); // JSON形式で表示するように設定。 $this->viewClass = 'Json'; // シリアライズを実行する。 $this->set('_serialize', array('data','test')); }で、ブラウザでアクセスするとJSON形式のデータが表示される。
おもむろに終わり
環境とか
項目 | 内容 |
---|---|
PHPフレームワーク | Cakephp 2.2.5 |
CSSフレームワーク | Twitter bootstrap 2.2.2 |
IDE | Eclipse 3.6 |
開発環境? | MAMP |
PC | iMac |
OS | Mac OS Lion |
0 件のコメント:
コメントを投稿