CakePHP で Model の取得レコードを書き出すだけのシンプルな動作確認

CakePHP でとりあえずデータ構造だけチェックしたいという事ありますよね。scaffold でこと足りる場合はそれでOKですが、GROUP BY や検索条件など検索に手を加えたい時は、set(compact(‘data’)) と debug($data) の組み合わせがよく使われます。

ごくごく一般的なのですが、聞かれたことがあるのでサイトにも書いておく事にしました。(恥)

  • モデル:belongsTo、他、リレーション定義などをしておく
  • コントローラ:呼び出したいアクションを定義する※この中で set(compact(‘data’)) します
  • ビュー:目的のコントローラ、アクションに合わせて ctp ファイルを作る※この中で debug($data) します

具体例を以下に示しておきます

app/models/user.php

<?php
class Users extends extends AppModel {
    public $belongsTo = array('Group');
} ?>

app/controllers/users_controller.php

<?php
class UsersController extends AppController {
    public function index() {
        $data = $this->User->find('all', array(
            'fields' => array('COUNT(User.id) AS total', 'Group.*'),
            'group' => array('Group.id')
            ));
        $this->set(compact('data'));
    }
}
?>

app/views/users/index.ctp

<?php debug($data); ?>

debug 書き出しは黄色い枠に配列構造をズラズラと表示してくれます