データの削除
エンティティの削除
deleteメソッドでエンティティを削除する。
<?php $entity = $this->Articles->get(2); $result = $this->Articles->delete($entity); ?>
連鎖削除
エンティティーを削除するとき関連データを削除することもできる。テーブルの初期化メソッドにおいてHasOne や HasMany が dependent として設定されている場合、削除処理はそれらのエンティティーにも連鎖適用される。
<?php // テーブル内の初期化メソッド $this->hasMany('Comments', [ 'dependent' => true, 'cascadeCallbacks' => true, ]); ?>
一括削除
deleteAll()で、引数の条件を満たすレコードを一括削除できる。
<?php // 全てのスパムを削除する function destroySpam() { return $this->deleteAll(['is_spam' => true]); } ?>
厳密な削除
deleteOrFail()は、次の条件で Cake\ORM\Exception\PersistenceFailedException を投げます。
<?php try { $table->deleteOrFail($entity); } catch (\Cake\ORM\Exception\PersistenceFailedException $e) { echo $e->getEntity(); // エラー内容を表示 } ?>