CakePHP情報のまとめ

モデルのクラス

  • AppModelを継承する
  • 主にデータベースへのアクセスを管理

メンバ

$useFbConfig

config/database.phpの中のデータベース接続設定を指定する。

$uses

使用するモデルを指定する。省略した場合はController名を単数形にしたモデルを使用する。
複数のモデルを使用したい場合は配列で指定する。

$useTable

使用するテーブル名を指定する。
通常はモデルクラス名から対象テーブル名が判断される。(Testモデル→testsテーブル)

$primaryKey

プライマリキーの設定
  • 通常、CakePHPでは「id」カラムをプライマリーキーと解釈する。
そのほかのカラムをプライマリーキーに設定するにはこのメンバを設定する。

$displayField

find()で「list」を選択したときに取り出されるフィールド

$order

検索結果の並び順を指定する。
通常はDBのデフォルトの順番で返ってくる。
指定例
$order = 'テーブル名.カラム名 ASC';
複数のカラムでORDERする場合は連想配列を使う
$oreder = array('テーブル名.カラム名1'=>'ASC', 'テーブル名.カラム名2'=>'DESC');

$data

データベースから取得したデータが保管される

コールバックメソッド

コールバックメソッドは各種の操作時に自動的に呼び出される

beforeFind($queryData)

  • 検索処理findの前処理を行う
  • 検索条件のデフォルト値を設定するなどに使用できる

検索条件「limit」が指定されない場合は10とするbeforeFindの例
function beforeFind($queryData) {
    if (empty($queryData['limit'])) {
        $queryData['limit'] = 10;
    }
    return $queryData;
}
$queryDataの内容
conditions
fields
joins
limit
offset
order
page
group
callbacks

afterFind($results, $primary)

  • 検索処理findの後処理を行う

beforeSave()

  • save()前に処理を行う
  • saveする内容に処理を行うわけではない
  • 特定条件によりsaveのキャンセルを行うことが出来る

afterSave()

  • save後に処理を行う

breforeDelete()

  • レコード削除の前に処理を行う
  • return trueで削除を行い、falseで削除キャンセル

afterDelete()

  • レコード削除の後に処理を行う

onError()

  • SQL実行時のエラー時に処理を行う
  • あくまでも実行時のエラーであり、接続失敗などの場合には処理を行わない






このページへのコメント

FteaQU Thanks a lot for the post. Will read on...

0
Posted by check it out 2014年01月21日(火) 11:13:46 返信

fo9ulc I truly appreciate this article.Really thank you! Awesome.

0
Posted by seo thing 2013年12月20日(金) 21:09:28 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

編集にはIDが必要です