・普通の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);
	}

Leave a Reply

Your email address will not be published. Required fields are marked *