0

与えられた:

Magentoの2つのカスタムクラスで、それらの間に多対1の関係があります。
子供は親への外部キーを持っています。
データベースはカスケード削除に設定されています。

子の参照が別の親に変わる場合があります。場合によっては、子のafterSaveメソッドで親を削除したいことがあります。これを行うと、FKから新しい親への変更がまだデータベースに書き込まれていないため、子自体が消え、データベースレベルのカスケードが開始されます。

子オブジェクトに新しい外部キーを書き込んだ後、親オブジェクトの削除をどのように調整できますか?

4

1 に答える 1

1

afterSaveお気づきのように、クエリがDBに書き込まれる前にトリガーされます。*_save_commit_afterイベントを使用する必要があります。アスタリスクはモデルevent_prefixです。オブザーバーを作成し、このイベントをリッスンします。これにより、DB内の情報が既に更新されていることを確認でき、外部キーの影響を受けません。

于 2012-12-13T23:03:38.563 に答える