2016-07-25 2 views
1

Ich habe die Loggable-Erweiterungen von Doctrine implementiert. Aber jetzt habe ich den folgenden Fall. Ich möchte den "Status" des Objekts verfolgen. Aber die Objekte existieren bereits in meiner Datenbank mit dem entsprechenden Status für jede von ihnen. Wenn ich eines aktualisiere, wird im log_entry das erste Protokoll für ein Objekt mit dem neuen Wert für seinen Status eingefügt. (Lassen Sie sagen, ich chnage Status von aktiv zu suspendiert und in den Protokolleintrag wird eingefügt ausgesetzt) ​​Doctrine Extension Loggable - protokolliert alte Werte anstelle neuer Felder

Von diesem Moment kann ich nicht den "aktiven" Status, da es nicht nirgendwo aufgezeichnet wird. Ich kann damit auf verschiedene Arten umgehen, aber gibt es eine Option für diese Loggable Extension, die anstelle einer neuen Version als letzten Datensatz für ein Objekt in Protokollen die aktuelle Version speichert, bevor Änderungen stattfinden?

Antwort

1

Sie können getObjectChangeSetData von LoggableListener überschreiben.

Alte Werte werden dort im $ change-Array gespeichert.

+1

Ich habe etwas anderes gemacht. Ein Aktualisierungs-Listener, der prüft, ist dieser Eintrag wird der erste Datensatz sein oder nicht. Wenn dies der Fall ist, füge ich einen Datensatz vor dem Loggable-Listener ein, um seinen ersten Datensatz mit dem neuen Wert einzufügen – Ivo

Verwandte Themen