てきとう

ワーワーゆうとります

CakePHP モデルの基本

 class Hoge extends AppModel {
  //なんかいろいろ*1
 }


・DBへのアクセスは、モデルを通して行う。(通さない方法もあります)
・モデルの定義は、PHPのクラスで、必ずAppModelクラスを継承させる
・ファイル名はテーブル名の単数形.php
・「どこのDBに、どんな感じに接続するのか」というのは、app/config/database.phpに書くのですが
複数のDBを扱っていて、database.phpで記述したdefault以外を使いたい時は
以下の変数で使いたい接続を設定します。

 $useDbConfig="使いたい接続名"


・命名規則に沿っていれば、規則に応じたテーブルを扱うように設定してくれますが
もう設計してしまいました。という場合は以下のように記述する。

 $useTable = "テーブル名" 
 //falseを指定するとテーブルを使わないモデルができます。


・モデルを使わない時はControllerに以下の変数をセット

 var $uses = null;


・主キーの設定を手動で変更

 $primaryKey = '設定したいフィールド名'


・セレクトボックスなどに表示する項目の変更

 $displayField = '表示したい項目名' 
 //generateList()の引数でも指定可能


★モデルのコールバック
オーバーライドする事によって、データ関連の動きの前後に処理を加える事も可能。

afterSave()
保存後に実行したいロジックをこのコールバックに置きます。
beforeDelete()
削除前に実行したいロジックをこのコールバックに置きます。
この関数は、続けて削除したい場合には true を返すようにしてください。
中止したい場合には false を返してください。

afterDelete()
削除した後に実行したいロジックをこのコールバックに置きます。

*1:このブログのタイトルは「てきとう」です