Ich baue ein Symfony2-Projekt und verwende gedmo/doctrine-extensions
(GitHub), um Softdelete zu implementieren. Meine Frage ist, ob es eine Möglichkeit gibt, Softdelete "zu deaktivieren" oder "zu überschreiben" oder sogar zu erkennen, wenn etwas weich gelöscht wurde.Symfony2/Doctrine: Lesen von "gelöschten" Daten bei Verwendung von Gedmos Doktrinserweiterungen
Hier ist die Situation:
ich eine „Notiz“ Einheit haben, die eine „user“ Entität verweist. Eine bestimmte Notiz verweist auf einen Benutzer, der gelöscht wurde. Obwohl der Benutzer gelöscht wurde, gibt er für die Logik "ist definiert" von TWIG den Wert true zurück und kann sogar die ID des gelöschten Benutzers zurückgeben. Wenn ich jedoch nach anderen Informationen abfrage (einschließlich des Parameters "deletedAt", der angibt, ob er gelöscht wurde oder nicht), erhalte ich den Fehler 500 "Entity wurde nicht gefunden".
Da tatsächlich die Daten immer noch da, und da die Notiz selbst nicht gelöscht, würde ich immer noch sagen, wer den Zettel geschrieben hat, auch wenn der Benutzer gelöscht wurde.
Ist das möglich? Wenn nicht, wie erkenne ich richtig, ob etwas weich gelöscht wurde? Wie gesagt, $note->getUser()
ruft immer noch ein Objekt ab und gibt für alle Null/"ist definiert" Vergleiche wahr zurück.
Dies ist eine bekannte Einschränkung von Doctrine2 finden https://github.com/doctrine/doctrine2/issues/4543 – PowerKiKi