2014年03月21日

[CakePHP2.x] find(‘all’)で条件を指定して抽出する方法

Blogチュートリアルだと、find('all')で、postsテーブルにあるデータを全部引っ張ってきている。

<?php
class PostsController extends AppController {
    public $helpers = array('Html', 'Form');

    public function index() {
        $this->set('posts', $this->Post->find('all'));
    }
}
?>

しかし、条件で絞り込んで検索したいときはある。
というので、id=1のブログ記事のみ抽出し、降順で検索結果を返すやり方。

<?php
class PostsController extends AppController {
    public $helpers = array('Html', 'Form');

    public function index() {
        $conditions = array(
            'conditions' => array(
                'Post.id' => 1
                ),
            'order' => array(
                'Post.title' => 'desc',
                )
        );
        $this->set('posts',$this->Post->find(‘all‘,$conditions));
    }
}
?>

上記は1つしか引っかからないので、全然実用的ではないが、conditionsをfind()の引数で指定できる。「order」で、'asc'を指定すれば昇順になる。

and条件で複数指定したい場合は、以下のように複数記載すれば良い。

$conditions = array(
        'conditions' => array(
            'Post.id' => 1,
            'Post.Title' => 'test'
        ),
    );

参考

データを取得する[CakePHP]

ラベル:PHP cakephp 検索
posted by lute at 21:29| Comment(0) | TrackBack(0) | CakePHP | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。