・普通のSQL。アソシエーションがあるテーブルの値も自動で取得出来る。
fields, conditionsでselect, where.
public function index(){ $users = $this->User->find('all', array( 'fields' => array('*'), 'conditions' => array('group_id =' => '2'), )); $this->set('users', $users); }
・inner joinを使う場合。
public function index(){ $users = $this->User->find('all', array( 'fields' => array('*'), 'conditions' => array('group_id =' => '2'), "joins" => array( array("type" => 'INNER', "table" => 'somethings', "alias" => 'Something', "conditions" => 'Something.id = User.id', ), ), )); $this->set('users', $users); }
・ページャを使いたい場合。同様にfields, conditionsでselect, where.
コントローラにはcomponent にPaginatorを設定しておく。
public $components = array('Paginator'); public function index(){ $this->Paginator->settings = array( 'fields' => array('User.id', 'User.lastname', 'User.firstname', 'User.email', 'Course.id', 'Course.course_name'), 'conditions' => array('group_id NOT' => NULL), 'limit' => 10 ); $data = $this->Paginator->paginate('User'); $this->set('users', $data); }