No need to create a listener or anything for HARD delete with softdeleteable enabled.
The original softdelete event has the following line:
$reflProp = $meta->getReflectionProperty($config['fieldName']); $oldValue = $reflProp->getValue($object); if ($oldValue instanceof \Datetime) { continue;
All this means if you:
$entity->setDeletedAt(new \Datetime()); $em->flush();
And then:
$em->remove($entity); $em->flush();
At this point, it will be deleted.
If you already have a valid date inside the deletedAt field when you call β flush () after a β remove ($ entity), your entity will be hard deleted.
greenseed
source share