質問: array( 'SoftDelete' ); ``` を記述。 DBの該当テーブルに 「deleted」(tinyInt型(1) デフォルト0) 「deleted_date」(datetime型) を設定。 Model、Controller、ViewはBakeしたデフォルトのまま使用。 どなたかきっかけになりそうなヒントだけでもいいので、情報をご存じの方はご享受ください。 必要情報で不足がありましたら、提示いただければ追記します。 よろしくお願いします。 ・追記 同じ症状に悩まされた方いらっしゃいますか? またその場合「根本的な解決はしなかったけれど、こういう方法で回避した」という例もあればお教え下さい。 よろしくお願いします。 【以下、回答に対する追記】 ![回答に対する追記画像](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/42143ec2c959ce206e579be82822c243.jpeg)
回答: delete時のソースを追っていくと、Model.php内で対象レコードが存在した場合に、物理削除を行っていますね 処理の流れとしては、model->deleteが呼び出される前にSoftDeleteBehavior->beforeDeleteが呼び出され、その中でDeletedを0->1に変更しています そのあと、model->deleteが処理されて物理削除しているので、以下のようにしてレコードの存在確認をFalseにすることで、model->deleteを無効にすることができるようです ``` class AppModel extends Model { // 以下のコードを追加 public function exists($id = null) { if ($this->Behaviors->loaded('SoftDelete')) { return $this->existsAndNotDeleted($id); } else { return parent::exists($id); } } } ```