cakePHP BAKE使用時のdeleteメソッド その1
BAKEで生成されたコントローラーを使ってdeleteメソッドを呼ぶと
コントローラー内でMODELにセットされたID(PKEY)をDELETE完了後に消してしまうので
IDを取得しておきたい場合はDELETEメソッドが走る前に変数に退避する必要がある。
**************
XXXXController.php
public function delete($id = null){
//モデルに削除対象のIDをセット
$this->テーブル名->id = $id
【略】
//引数無しでメソッドを呼ぶ
$this->テーブル名->delete();
}
lib/Cake/Model/Model.php
public function delete($id = null, $cascade = true) {
if (!empty($id)) {
$this->id = $id;
}
//自身のメンバーからIDを取得
$id = $this->id;
【略】
$this->_clearCache();
//正常終了直前にfalseを代入している
$this->id = false;
return true;
**************
以下メモ
SAVEやDELETEの前後に処理を入れる場合はビヘイビアを使おう。
モデルに割り当てられたビヘイビアは自動的にコールバックが呼ばれます。 そのコールバックはモデルで見られるものと似ています: beforeFind 、 afterFind 、 beforeSave 、 afterSave 、 beforeDelete 、 afterDelete 、onError