From f39ed75e49e0e21ad56559aa4b48ae05cba377df Mon Sep 17 00:00:00 2001 From: HypeMC Date: Tue, 7 Oct 2025 01:37:51 +0200 Subject: [PATCH] [SoftDeleteable] Document the `$handlePostFlushEvent` option --- doc/soft-deleteable.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/doc/soft-deleteable.md b/doc/soft-deleteable.md index e5e3bf960..bd8ee0baf 100644 --- a/doc/soft-deleteable.md +++ b/doc/soft-deleteable.md @@ -27,6 +27,22 @@ $listener = new SoftDeleteableListener(); $om->getEventManager()->addEventSubscriber($listener); ``` +### Removing Soft-Deleted Entities from the Identity Map + +When an entity is soft-deleted, it remains managed by Doctrine and can still be queried by its primary key as it stays +in the identity map. +To automatically remove such entities after a flush, enable the `$handlePostFlushEvent` option: + +```php +$listener = new SoftDeleteableListener(true); +``` + +This detaches soft-deleted entities from the identity map but may cause issues if a deleted entity is still referenced +by another managed entity with cascade persist, as later `flush()` calls may treat it as new and attempt to re-insert +it. + +Enable this option only if you need deleted entities to be fully detached after flushing. + ### Configuring Filters To automatically filter out soft-deleted records from all queries, you need to register and enable the appropriate filter for your object manager.