CakePHP 1.2 の Model::find()

Model::findAll() や Model::findCount() が非推奨になって、Model::find() が、若干カオスな状態になってるみたい。古い記法と新しい記法があることがわかった。

APIリファレンス参照:
http://api.cakephp.org/class_model.html#e60758f27fa8486a063b8cc424bad741

新しい記法では、

  • 第1引数 $conditions に、動作(all, first, count) を設定。
  • 第2引数 $fields に、検索条件を設定。

第2引数の設定が微妙に今までと違うので注意。order とか limit とかも設定できる。

array('conditions' => array('age >' => 20), 
      'order' => 'id DESC',
      'limit' => 10)
第2引数のキー
callbacks ビヘイビアやコールバック(Model::beforeFind(), Model::afterFind())を実行するかどうかの制御。"before", "after", true, false を指定。
conditions 検索条件。配列や文字列で記述。
fields 取得するフィールド名。配列で記述。
joins
limit SQL文の limit。数値を指定。
page ページ番号(Pagination で利用?)
offeset SQL文の offset。数値を指定。
order SQL文の ORDER BY。配列で記述。配列の値は、"[項目名] [ASC/DESC]" と記述。
recrusive アソシエーションの深さ。数値を指定。