CakePHP deleteAllのコールバックメソッドはデフォルトではうごかないよー
hasManyとかでdependentをtrueにすると、関連モデルのデータも削除できるわけですが
belongsToでも、関連モデルのデータも削除できるのかわからなかったのでafterdeleteで削除しようとこころみました。
afterDelete(){ //関連モデルをclassの前で読み込んでます→App::import('Model','HogeHoge'); $this->HogeHoge = new HogeHoge(); $this->HogeHoge->deleteAll(array('HogeHoge.hoge_id'=>$this->id)); }
したら動かない。afterDelete内でdumpしたけどなんも起きない。
あれって思ってdeleteAllのコード確認したっけ
deleteAll($conditions, $cascade = true, $callbacks = false) { (略) }
中では$callbackがtrueならコールバック関数をお見舞いするぞ!という内容。
deleteAllってば、デフォルトではコールバック関数を使わないぞ、という方針なのですね。