CakePHP2.xにおける重要関数

CakePHP2.xではDB操作系の関数で重要なものが3つある。
 
これらがCakephp2.xにてDBを操作する為の最低限必要な関数である。
 

find()

対象を検索する。Controllerに記述。亜種として単一フィールドを対象にして検索できるfindBy<フィールド名>()などがある。

$this->CakeSample->find($id);

 
 

save()

対象を保存/挿入する。Controllerに記述。亜種としてトランザクション処理に使えるsaveAll()などがある。

$this->CakeSample->save($id);

 
 

delete()

対象を削除する。

$this->Unit->delete($id);

 
 
 
上記3つ以外にも重要だと思った機能を以下に羅列。
 
 

loadModel()

Controllerを別のModelと関連付けることができる。Controllerに記述。突発的に他のモデルを読み込みたいときなどに利用する。

$this->loadModel('Model');

 
※$usesに複数モデルを読み込ませておかなければいけない点に注意。
 
※’Model’には読み込みたいモデル名を記述する。
 
public $uses = array('Foo', 'Bar', 'Baz');
$this->loadModel('Foo');
 
 

setDataSource()

Modelを別のDBと関連付ける。Controllerに記述。複数DBに書き込みたい場合などに利用する。

$this->Model->setDataSource('database');

 
※$usesに複数モデルを読み込ませておかなければいけない点に注意。
 
※’CakeSample’には対象のモデル名を記述する。
 
※’database’にはdetabase.phpかbootstrap.phpで作ったデータベースの変数名を記述する。
 
public $uses = array('Foo', 'Bar', 'Baz');
$this->Foo->setDataSource('development');
 
 

$this->modelClass = null;

ControllerとModelの関連付けを解除する。Controllerに記述。

$this->modelClass = null;

 
 

アソシエーション

レスポンスに他のDBの内容を含めたり、いろいろできる。Modelに記述。

public $belongsTo = array(
  'CakeSample' =>array(
    'className' => 'CakeSample',
    'foreignKey'=> 'id'
  )
);

 
 

アソシエーションの動的解除

アソシエーションを解除することができる。メソッドによってレスポンスを変えたい時に便利。Controllerに記述。

$this->CakeSample->unbindModel(array(
'hasAndBelongsToMany'=>array('CakeSample2')), false);

 
 

カウンターキャッシュ

アソシエーションで関連付けられたテーブルのレコード数を自動カウントする。Modelに記述。

public $belongsTo = array(
  'CakeSample' =>array(
    'counterCache' => true
  )
);

 
 
以上
 
 
参考
自分が書いたソースコード

Article written by

コメントを残す