array(“ANDまたはOR” => array{こんな具合になります。キーに”AND”または”OR”を指定し、その値に連想配列を使って、項目名をキーとする値を複数用意します。これで、配列に用意した複数の検索条件をANDまたはORして検索を行うようになります。
“項目1” => “値”, “項目2” => “値”
));
$opt = array("OR" => array (このように設定してありますね。これで、nameとmailのそれぞれの条件を設定したOR検索が実行できます。findの際には、
"MySampleData.name" => $name,
"MySampleData.mail" => $mail
)
);
find('all',array('conditions' => $opt));このように、’conditions’の値として、先ほどの$optを設定してやるのです。これで複数の条件を設定した検索ができるようになります。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※find.ctp <h1>Index Page</h1> <p>MySampleData Find View.</p> <?php echo $this->Form->create('MySampleData'); echo $this->Form->input('name'); echo $this->Form->input('mail'); echo $this->Form->end('Submit'); ?> <?php if (isset($data)): ?> <pre><?php print_r($data); ?></pre> <?php endif; ?> ※findメソッド public function find(){ // レイアウト関係 $this->layout = "Sample"; $this->set("header_for_layout", "Sample Application"); $this->set("footer_for_layout", "copyright by SYODA-Tuyano. 2011."); // post時の処理 if ($this->request->is('post')) { $name = $this->request->data('MySampleData.name'); $mail = $this->request->data('MySampleData.mail'); $opt = array("OR" => array ( "MySampleData.name" => $name, "MySampleData.mail" => $mail ) ); $data = $this->MySampleData-> find('all',array('conditions' => $opt)); $this->set('data',$data); } }
<< 前へ | 次へ >> |