Slowly Changing Dimension problem(要約:ユーザーがシステムから削除されても注文データを保持したい)を避けるため、delete
イベントをハイジャックした代わりにレコードにinvalid
フラグを設定します。Doctrine:削除操作を無効にして、代わりにレコードを無効にする
私はStofDoctrineExtensionsBundleから
softdeletable
フィルタを知っているが、これは子オブジェクトにカスケードされます場合、私はわかりませんよ。が、これは一般的な/良い練習/アイデアであり、次のライフサイクルコールバックでこれを行う?:
/
/**
* @ORM\PreRemove
*/
public function makeInvalid() {
$this->enddate = new \DateTime(); // set the end of validity property to now
cascadeToRelatedObjects(); // i.e. make sure all 'child' objects also change validity
somehowContinueTheOperation(); // i.e. do not cause an Error of sorts
}
- または私は、むしろ、機能を変更する必要がありますフォーム上の削除ボタンをクリックし、上記に該当する更新機能を割り当てますか?