頭の中が SQL モードになっている場合によくミスる
こういうSQL文を発行したい場合
SELECT * FROM users
WHERE (users.name = 'hoge' OR users.age = 20)
AND (users.name = 'foo' OR users.age = 30);
find の引数となる連想配列は次のようになる
// 正しい連想配列
$conditions = array(
array( 'or' => array('name'=>'hoge', 'age'=>'20')),
array( 'or' => array('name'=>'foo', 'age'=>'30')),
);
連想配列の仕組み上、下のような連想配列では、キー:ORが上書きされる。
脳内がSQL モードになっていると意外に気が付かない。
// 誤った連想配列
$conditions = array(
'or' => array('name'=>'hoge', 'age'=>'20'),
'or' => array('name'=>'foo', 'age'=>'30'),
);