test
CakePHP Note
モデルのメソッド
レコードの検索
read(mixed fields, mixed id)
プライマリーキーがidが一致するレコードを検索する。デフォルトのプライマリーキーは'id'という名前のフィールド。プライマリーキーはモデルの属性で変更できます。fieldsで取得するフィールドを文字列か配列で指定できる。fieldsに'null'を指定すると全てのフィールドのデータを取得できる。
find(string $type, array $params)
(旧)findAll(mixed $conditions, array $fields, string $order, int $limit, int $page, int $recursive)
(旧)find(mixed $conditions, array $fields, string $order, int $recursive)
$type
検索のタイプ、'count','first','all','list','neighbors'のいずれか。
- count(レコード数)
- first(最初のレコード)
- all(全てのレコード)
- list(セレクトタグなどのための特定キーと値によるシンプルな配列)
$params
conditions, limit, fields, order, limit, page, recursiveなどを配列で指定します。
conditions
検索条件を文字列か配列で指定します。テーブルを結合するケースがあるので、カラム名の指定は"モデル名.カラム名"で指定するのが良い。
fields
取得するカラム名を指定します。デフォルトは'null'で全てのデータを取得。
検索タイプが'list'の場合はkey=>valueの配列を取得します。次の通り
- 指定しない(idとdisplayFieldで指定したフィールドのデータを取得)
- 1つ指定(idと指定したフィールドのデータを$id=>$filedで取得)
- 2つ指定(指定したフィールドのデータを$fieldA=>$fieldB取得)
- 3つ指定(指定したフィールドのデータを$fieldC =>($fieldA=>$fieldB)で取得
order
ソート順を文字列か配列で指定します。
limit, page
取得するデータの範囲を指定します。ページ送りを行うときはコントローラのページネーションを使うと便利です。
$recursive
アソシエーションで指定した関連レコードの取得レベルを指定します。デフォルトは'null'
-1:メインのテーブルのみ
0:メインのテーブルとbelongTo,hasOneのアソシエーションまで
1:メインのテーブルとそのアソシエーションまで
2:メインのテーブルとそのアソシエーションとそのアソシエーションまで
レコードの特定カラム名での検索
findAllBy<fieldName>(string $value)
findBy<fieldName>(string $value)
PHP5とPHP4で<fieldName>の部分の書き方が違う。
その他
- set($data)
- validate()
- isUnique(array('フィールド名'=>'値'))
- schema(boolean $clear)(テーブル定義情報を取得。$clearをtrueにするとデータベースから再読み込み)
