読者です 読者をやめる 読者になる 読者になる

てきとう

ワーワーゆうとります

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ってば、デフォルトではコールバック関数を使わないぞ、という方針なのですね。