Da es immer mal wieder beim Übertragen von Bildern zum Shop zu dieser Meldung kommt
Duplicate entry for key PRIMARY 0
und damit die Tabelle
jtl_connector_link_image gemeint ist, die bei Problemen einfach bei
endpoint_id, welches der PRIMARY Key ist, eine 0 einträgt, frage ich mich, ob man das nicht abfangen kann.
Im Code sehe ich das
/*+ TODO: Prüfen warum das nicht funktioniert
if (!rename($data->getFilename(), $imageFilePath)) {
throw new \Exception('Cannot move uploaded image file');
}
*/ rename($data->getFilename(), $imageFilePath); Ich frage mich warum, wenn das Verschieben der Datei (=
rename()) nicht geklappt hat trotzdem ein Eintrag in die
jtl_connector_link_image gemacht wird.
Okay, am Kommentar sehe ich, daß die Exception wohl nicht geworfen wird, aber man kann doch zumindest abfragen ob
$data->getId()->getEndpoint()
oder
$newId
größer 0 sind bevor man einen kaputten Eintrag in die genannte Tabelle vornimmt ?
Habe noch nicht herausgefunden in welcher Abhängigkeit der Eintrag vorgenommen wird und warum genau das Holen der
enpoint_id fehlschlägt, also anscheinend bei mißlungenem
rename() kein Eintrag in die Tabelle
products_images (oder auch
products für das erste Bild) gemacht wurde.
Das kann doch kein Akt sein das abzufangen. Meine Wenigkeit müsste erstmal den ganzen objektorientierten Code mit Interfaces Klassen und abgeleiteten Klassen analysieren, um herauszubekommen wo was an welcher Stelle passiert.
Ein Wissender kann das 100 mal schneller.
Gruß,
noRiddle