CSS Selector Generator | CSS のセレクタ一覧を一発で自動生成!

18

12月2007年

CakePHP の findBy で簡単な複数条件指定

kimoto 16:11 PM

最近は CakePHP に触れる事が多くなってきています。

さて、CakePHP で DB からデータを取ってくる関数である「findBy」と「findAllBy」。
例えば、

// $name をキーにデータ取得
$this->User->findAllByName($name);

などと書けば、名前をキーにしてユーザのデータを取得できたりします。
ここで、複数の項目をキーにデータを取得したい時は、
このような書き方で取得する事ができます。

// $name と $status をキーにデータ取得
$this->User->findAllByNameAndStatus($name, $status);

さらに、OR で条件指定したい場合。

// $name と $status のどちらかをキーにデータ取得
$this->User->findAllByNameOrStatus($name, $status);

となります。とても便利ですね。
ちなみにこの関数、「And」と「Or」は混在できません。
飽くまでも、簡単な条件指定の時に使う物という認識が丁度いいと思います。

さて、ここでちょっと落とし穴。
この「FindByFooAndBar」という関数。
PHP4 で使おうとするとエラーになり、正常にデータを取得する事ができません。

PHP4でこの書き方をしたい場合は、

// $name と $status をキーにデータ取得
$this->User->findAllByName_And_Status($name, $status);

このように、「_(アンダーバー)」を間に挟むようにします。
PHP5 の環境から PHP4 の環境に移る事がある場合は覚えておくと良いですね。

photo
CakePHPガイドブック
安藤 祐介 新原 雅司 堂園 俊郎
毎日コミュニケーションズ 2007-10-25

by G-Tools , 2007/12/18

バシャログスタッフによるWebサイト制作サービス

トラックバック

このエントリーのトラックバックURL
http://c-brains.jp/cgi-bin/mt/###/1345
###はmt-tb.cgiに変更してください。

ページの先頭へ

POPULAR TAGS
  • バシャログスタッフによるWebサイト制作サービス

ARCHIVE

特集

  • ステップアップ!CakePHP
  • 作って学ぶjQuery