Hallo Freunde
Folgendes möchte ich machen: Wenn jemand sich über direct_mail_subscription anmeldet, möchte ich in seinem tt_address-Record einige Felder ändern (z.B. ein Datum setzen, override genügt nicht).
Folgendes habe ich probiert: ich setze meine eigene User Function bei plugin.feadmin.dmailsubscription.create.userFunc_afterSave.
Das klappt ganz gut so:
class AfterSaveUserFunction { public function main($config, $ref) { } }
Wenn ich das allerdings über ein Repository zu bewerkstelligen versuche, [b]werden die Änderungen nicht gespeichert[/b].
class AfterSaveUserFunction { public function main($config, $ref) { // get the recipient repository (injecting does not seem to work) $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('\TYPO3\CMS\Extbase\Object\ObjectManager'); $repository = $objectManager->get('\XYZ\MeineExtension\Domain\Repository\RecipientRepository'); // update recipient $recipient = $repository->findByUidOnAllPages($config['rec']['uid'], true)->getFirst(); $recipient->setCity('Rome'); $repository->update($recipient); // persist (does not work) $persistenceManager = $objectManager->get('\TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager'); $persistenceManager->persistAll(); } }
Ich wäre Euch sehr dankbar, wenn Ihr mir sagen könntet, warum das nicht geht. Oder wie das mit Extbase zu machen ist.