2009年6月4日木曜日

[cakephp]findメモ

findAllは非推奨になったため、find('all')を使う。

(古)
$this->model->findAll($conditions);
(新)
$this->model->find('all', array('conditions' => $conditions));


conditionsに複数条件を指定するとデフォルトではAND検索になる。

$conditions = array('title' => 'hoge', 'author' => 'piyo');
以下のようになる。
(title = 'hoge')AND(author = 'piyo')

OR検索をするときは次のように指定する。
$conditions = array('or' => array('title' => 'hoge', 'author' => 'piyo'));
以下のようになる。
(title = 'hoge')OR(author = 'piyo')

IN検索
$conditions = array('model.id' => array(1, 3, 5, 6));
$this->model->find('all', array('conditions' => $conditions));

こうするとmodel.idが1か3か5か6であるデータが取れる
*idは属性名が重複するのでmodel.idのようにテーブル名を付ける。

0 件のコメント:

コメントを投稿