2007年9月21日金曜日

CakePHPのfind条件にORを設定したい

CakePHPで検索条件を設定するときに'OR'を指定したい場合(初心者編)

$conditions = array(
'Model' => array(
'id' => 1,
'or' => array(
array('user' => 'hogehoge'),
array('user' => 'mogumogu')
)
)
);
$this->Model->find($conditions);

とすると

WHERE (`id` = 1) AND ((`user` = hogehoge) OR (`user` = mogumogu))

こんな感じになります。

さらに'AND'を入れたい

$conditions = array(
'Model' => array(
'id' => 1,
'or' => array(
array(
'user' => 'hogehoge',
'password' => 'hagehage'
),
array(
'user' => 'mogumogu',
'password' => 'magumagu'
)
)
)
);
$this->Model->find($conditions);

とすると

WHERE (`id` = 1) AND (((`user` = hogehoge) AND (`password` = hagehage)) OR ((`user` = mogumogu) AND (`password` = magumagu)))

となります。

なかなかCakePHPには手こずります。んー慣れないとわかりずらいもんです。

0 件のコメント: