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 件のコメント:
コメントを投稿