CakePHPではまったこと 12(findBy~)

ACアダプターとかってコンセントに挿すところが大きくて、複数並べて挿そうと思ってもスペース的に厳しいときがあります。そこを無理して挿すのは・・・危険。
本日、挿すときちょっと無理があったもののやや斜めになりながら挿せたので満足していたら、抜くときに抜けませんでした。微妙に鍵穴にはまっているらしく、ゆがんだためか全く抜けず、20分ほどACアダプターと格闘するはめに。力技でなんとか抜きました。もう二度と無理はしない。

CakePHPでモデルからデータを取得する際に、私はfindByを結構使ってしまっています。例えば、foo_idフィールドが”1″であるようなbarを取得する場合。


class BarsController extends AppController {
   var $name="Bars";

   function hoge() {
      $bars = $this->Bar->findAllByFoo_Id("1");
      $this->set('bars', $bars);
   }
}

で、このfindAllBy~~()って、他のパラメータはどうなるんだ??と思ってはいたのですが、なんかよくわからないので、APIリファレンスにもそんなこと書いてないような気がする(書いてあるのかもしれないけどわからない)ので、放置してました。
findAll()自体なら


Model::findAll($conditions = null,
        $fields = null,
        $order = null,
        $limit = null,
        $page = 1,
        $recursive = null	 
)

って書いてあります。
で、findAllBy~~()ですが、適当にパラメータを渡してみたところ、上記のfindAll()と同じようです。
例えば、idで降順に取得する場合は


class BarsController extends AppController {
   var $name="Bars";

   function hoge() {
      $bars = $this->Bar->findAllByFoo_Id("1", null, "id DESC");
      $this->set('bars', $bars);
   }
}

でよいようです。
ちなみに、orderは日付でもちゃんとやってくれるみたいです。


      $bars = $this->Bar->findAllByFoo_Id("1", null, "modified DESC");

以上

コスミー について

昔(?)はゲーム作ってました。 今もなんか作ろうとしています。
カテゴリー: PHP, フレームワーク パーマリンク

コメントを残す

メールアドレスが公開されることはありません。