In dieser Anleitung wird erklärt, wie man (Ab V12 kompatibel) den PersistenceManager nutzt, um z.B. Formular-Daten in einer Datenbank zu speichern

1. PersistenceManager holen und injizieren

Um den TYPO3 Extbase PersistanceManager nutzen zu können, holen wir uns diesen in unsere Klasse:

 

<?php

namespace LdoerrDotCom\MeineExtension\Controller;

use TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager;


...

//PersistenceManager injizieren:

    /**
     * @var PersistenceManager
     */
    protected $persistenceManager;

    /**
     * Injects the Persistence Manager
     *
     * @param PersistenceManager $persistenceManager
     */
    public function injectPersistenceManager(PersistenceManager $persistenceManager)
    {
        $this->persistenceManager = $persistenceManager;
    }


//Hier wird als Beispiel ein Formular Model genutzt:

    /**
     * formRepository
     *
     * @var \LdoerrDotCom\MeineExtension\Domain\Repository\FormRepository
     */
    protected $formRepository = NULL;

    public function injectFormRepository(FormRepository $formRepository)
    {
        $this->formRepository = $formRepository;
    }

 

 

2. Repository in Action initialisieren und mit Daten füllen

Nun initialisieren wir unser Model in einer beliebigen Action:

 

$newFormObject = new \LdoerrDotCom\MeineExt\Domain\Model\Form();

//Nun füllen wir das Form Model mit unseren Daten:
$newFormObject->setName('Max Mustermann');

//Die Daten werden der formRepository hinzugefügt:
$this->formRepository->add($newFormObject);

//Die Daten werden in der Datenbank abgespeichert:
$this->persistenceManager->persistAll();

//Prüfen, ob das Speichern funktioniert hat:
if($newFormObject->getUid()) {
  die("hat geklappt");
}
else {
  die("hat nicht geklappt");
}

 

 

Previous PostTYPO3 Extbase: Frontend Plugin hinzufügen
Next PostTYPO3 Extbase: Auf Events von anderen Extensions zugreifen