Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 6 Aktuelle »

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

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

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


  • Keine Stichwörter