うめぼしジョイスティック - ivoice

CakePHP、JavaScript、jQuery等のプログラミングについて書いていきます 思考は、うめぼしのように硬く、そして柔らかく。

CakePHPのfindでconditionsに複数の条件を当てはめる方法

CakePHPのfind関数について、conditionsで複数の条件を当てはめる方法です。


データベースの名前をModelとして、$a にデータベースの中身をすべて入れる場合は
コントローラーに

$a = $this->Model->find('all');


と書けば、取得できます。



ここで、Modelのデータベースの中身が


Model

id
prefecture_id
example_id
content

という構造だったとして、
prefecture_id(都道府県ID)から複数の県をfindしたいという場合があると思います。


『北海道と青森だけfindしたい!』


というような場合です。


その場合は、

$a = $this->Model->find('all',array(
'conditions' => array(
'Model.prefecture_id' => array( 1, 2 )
)
));
とすれば大丈夫です。




また、

'conditions' => array(
'Model.prefecture_id' =>array( 1, 2 ),
'Model.example_id' => 3

)
のようにすれば、複数の条件をあてがうこともできます。
もしリレーションでモデル同士を繋いでいる場合は、

                 'conditions' => array(
'Model.prefecture_id' =>array( 1, 2 ),
'Model.example_id' => 3,
'Sample.sample_id' => 100
                    )

のようにして、違うモデルをconditionsの条件にすることも出来ます。


以上、conditionsに複数の条件をあてがう方法でした。