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に複数の条件をあてがう方法でした。