ich habe ein eigenes Plugin gebaut, bei dem ein Kunde eine Datei hochladen kann.
Dazu habe ich eine eigene Entität erstellt, in der die Beziehung zwischen Kunde und Datei festgehalten wird.
Jetzt möchte ich, dass sobald der Kunde gelöscht wird, auch die Datei gelöscht wird. Wie stelle ich das am klügsten an?
Die Datei des Kunden wird übers mediaRepository verwaltet.
Ich wollte mich an das Event customer.deleted hängen, aber wie der Name des Events schon sagt, ist der Kunde dann schon gelöscht worden und ich kann vom Kunden nicht mehr auf die Datei schließen.
Der Eintrag in meiner Beziehungstabelle wird gelöscht sobald der Kunde gelöscht wird (durch ON DELETE CASCADE) - das kann ich bei der shopware-eigenen Datenbanktabelle ‘media’ aber nicht so machen, oder?
Vielleicht kann mir jemand weiterhelfen.
Mit freundlichen Grüßen
Oliver
ich kann dir Programmiertechnisch nicht direkt weiter helfen da ich in anderen Bereichen unterwegs bin und auch keine Erfahrung mit dem Programmieren von Plugins habe.
Aber kommst du nicht über die EventArgs an eine Id, ich weiß es ist schon gelöscht zu der Zeit.
Kenne es nur aus anderen Programmiersprachen so, dass man trotzdem über die Argumente noch Infos erhält um was für einen Datensatz es sich gehandelt hat.
Ansonsten eine andere Idee, rein von der Logik.
Kannst du das Löschen des Eintrags in deiner Beziehungstabelle nicht erstmal weglassen und nach dem deleted Event über die Tabelle eine Abfrage laufen lassen, die dir alle Ergebnisse liefert, zu denen es keine Id mehr bei den Kunden gibt?
Dann hättest du ja den Eintrag in deiner Beziehungstabelle und dadurch auch die mediaId und könntest beides löschen.