[Frage] Problem mit PersistenceManager

  • sixx24 sixx24
    T3PO
    0 x
    24 Beiträge
    0 Hilfreiche Beiträge
    18. 08. 2014, 13:50

    Hallo zusammen,

    ich habe mich drangemacht eine alte 4.5 Extension auf 6.2 upzudaten. Soweit so gut. Es handelt sich um eine Extension in der man im FE bestimmte Datensätze anlegen und verändern kann.
    Ich bin allerdings noch kein Typo3 Extbase Experte...

    Problem ist nun das ich beim abspeichern eines Datensatzes im FE (editAction update auf das repository) folgende Exception bekomme:
    [b]"The object of type "VENDORXYZ\EXTNAMEXYZ\Domain\Model\Box" given to update must be persisted already, but is new"[/b]

    Im PersistenceManager gebe ich mir mal die persistenceSession aus - und dort fehlt mein Model
    Wenn ich diese Seite allerdings mit F5 refreshe geht er ohne Exception weiter und hat meine Box gespeichert.

    Irgendein Anhaltspunkt wo ich mit der Suche anfangen soll. Was ich wo vergessen haben könnte? :)

    Vielen Dank


  • sixx24 sixx24
    T3PO
    0 x
    24 Beiträge
    0 Hilfreiche Beiträge
    18. 08. 2014, 23:15

    HA!
    Also ich weiß jetzt das es an folgender Zeile in meiner editAction liegt:

    1. $this->boxRepository->storeBoxToSession($box, $box->getUid());

    Wenn ich die auskommentiere funktioniert es wunderbar. Anscheinend wird das Object aus der persistenceSession geworfen wenn ich es in eine User Session schreibe. Wieso auch immer. Da muss ich noch weiter forschen!

  • denyo256 denyo256
    Padawan
    0 x
    32 Beiträge
    0 Hilfreiche Beiträge
    19. 08. 2014, 09:45

    Wie lässt du dir denn die persistenceSession ausgeben? Ich habe ein ähnliches Problem mit leeren Einträgen in der Datenbank.

  • sixx24 sixx24
    T3PO
    0 x
    24 Beiträge
    0 Hilfreiche Beiträge
    19. 08. 2014, 10:04

    Ich gebe mir in dieser Klasse:
    /typo3/sysext/extbase/Classes/Persistence/Generic/PersistenceManager.php

    mit

    1. \TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($this->persistenceSession);

    die Session aus. Aktuell habe ich das in der Funktion isNewObject gemacht.