Löschen von Datensätzen (DeleteManager)

Das Löschen von Datensätzen ist in Doctrine\Manager\DeleteManager geregelt. Es stehen unterschiedliche Methoden zur Verfügung, um das Löschen zu ermöglichen (siehe nachfolgende Überschicht).

Hinweis

Alle Methoden erlauben das Löschen vieler Datensätze in einem Aufruf.



Methode

Beschreibung

Methode

Beschreibung

default

Es wird der Stammdatensatz inkl. Sprachen gelöscht. Verknüpfungen zu bestehenden Datensätzen werden ebenfalls gelöscht. Die verknüpften Datensätze bleiben erhalten.

recursive

Wie default, jedoch werden hier alle Kinder und Kindeskinder ebenfalls gelöscht. Es wird die vollständige Rekursionskette gelöscht.

Achtung

Es ist möglich dass Kinder oder Kinder aus der Rekursionskette zu weiteren Eltern verknüpft sind. Das wird beim Löschvorgang nicht überprüft. Die Datensätze werden dennoch gelöscht.



truncate

Wie default, jedoch werden alle Datensätze in der angegbenen Tabelle gelöscht.

Aufruf

use Brandbox\Framework\Brandbox\Doctrine;   $ids = [1,2,3,4,5]; $entities = [$repository => $ids] $logger = $this ->staticController(Doctrine\Manager\DeleteManager::class) ->default($entities) ; $logger = $this   ->staticController(Doctrine\Manager\DeleteManager::class)   ->recursive($entities) ; $logger = $this ->staticController(Doctrine\Manager\DeleteManager::class) ->truncate($repository) ;

Verwendung des Loggers

Die Löschvorgänge werden intern geloggt. Nach dem Löschvorgang kann auf die Nachrichten sowie die gelöschten Ids zugegriffen werden. 

use Brandbox\Framework\Brandbox\Doctrine; $deleteManager = $this->staticController(Doctrine\Manager\DeleteManager::class); $logger = $deleteManager->default($entities); $copiedId = $deleteManager->getDeletedId($logger, $repository, $sourceId); $messages = $logger->all();

Eventübersicht

Klassenname

Beschreibung

Klassenname

Beschreibung

OnExecuteManagerDelete

Wird von allen Lösch-Methoden (aber nicht von truncate()) in Doctrine\Manager\DeleteManager::class ausgelöst

OnExecuteManagerTruncate

Wird von Doctrine\Manager\DeleteManager::truncate() ausgelöst