新しいバージョンの Cake では beforeSave() メソッドで削除できませんが、以前のライブラリ (バージョン 2.2 など) では機能します。
Cake ライブラリを変更せずに再び機能させる方法を知っている人はいますか?
コード:
public function beforeSave($options = array()) {
if(!empty($this->data['Attachment']['delete']) && (int) $this->data['Attachment']['delete'] === 1) {
if($this->deleteFromDb((int) $this->data['Attachment']['id'])) {
$this->data['Attachment'] = array();
return true;
} else {
return false;
}
}
return true;
}
public function deleteFromDb($id) {
if ($this->delete($id)) {
return true;
} else {
return false;
}
}
次の行は false を返しますが、その理由がわかりません。
if($this->deleteFromDb((int) $this->data['Attachment']['id']))
次のように置き換えても、false が返されます。
if($this->delete((int) $this->data['Attachment']['id']))
コントローラーからメソッドにアクセスすると、true が返されます。
$this->Model->deleteFromDb($id);
どんな助けでも素晴らしいでしょう。