前提・実現したいこと
CakePHP3で、エンティティーを削除するときに連鎖削除を実施しています。
CakePHP 3.8 Red Velvet Cookbook
HasOne や HasMany が dependent として設定されている場合、削除処理はそれらのエンティティーにも連鎖適用
php
1// テーブル内の初期化メソッド(thisはTable「Articles」) 2$this->hasMany('Comments', [ 3 'dependent' => true, 4]);
「Comments」テーブルからも1対多で関連するテーブル「Responses」も上記同様にして、
Table「Articles」のエンティティを削除したら、「Comments」と「Responses」も連鎖削除したいです。
php
1// テーブル内の初期化メソッド(thisはTable「Comments」) 2$this->hasMany('Responses', [ 3 'dependent' => true, 4]);
発生している問題・エラーメッセージ
Table「Articles」のエンティティを削除したら、「Comments」は連鎖削除されますが、
「Responses」は連鎖削除されません。
暫定回避
「Articles」のControllerのdeleteメソッド内で、関連する「Comments」エンティティを削除するコードを追加し、
「Responses」は連鎖削除しています。
知りたいこと
CakePHP3の連鎖削除は、1段目(というべきでしょうか)までしか適用されないのでしょうか。
1段目 「Articles」→「Comments」
2段目 「Articles」→「Comments」→「Responses」
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。