cakephp3 データの削除(関連などの削除方法)

  • 基本的な削除方法。エンティティーを送る。
$order = $this->Order->get(3);
$this->Order->delete($entity);
  • まとめて削除はconditionsを指定する
    ※delteAllは afterDeleteとかのCallbackが呼ばれない。
$this->Order->deleteAll(['status_id'=>3])
  • 関連テーブルを消す。
    関連元のhasManyオプションで指定。(deleteAllで消される)
        $this->hasMany('OrderDetails', [
            'foreignKey' => 'order_id',
            'dependent' => true
        ]);
  • 関連テーブルを消す。
    関連元のhasManyオプションで指定。afterDeleteとかのコールバックも呼びたい
        $this->hasMany('OrderDetails', [
            'foreignKey' => 'order_id',
            'dependent' => true,
            'cascadeCallbacks'=>true
        ]);

参考 :
https://book.cakephp.org/3.0/ja/orm/deleting-data.html