Kopieren von Datensätzen (CopyManager)

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

Hinweis

Alle Methoden erlauben das Kopieren vieler Datensätze in einem Aufruf.



Methode

Beschreibung

Methode

Beschreibung

root

Es wird der Stammdatensatz kopiert. Sprachen werden nicht kopiert.

default

Es wird der Stammdatensatz mit Sprachen kopiert.

withRelation

Wie default, der Stammdatensatz wird aber zusätzlich zu Eltern- und Kindern verknüpft, zu denen der Ursprungsdatensatz auch verknüpft ist. 

recursive

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

Aufruf

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

Verwendung des Loggers

Die Kopiervorgänge werden intern geloggt. Nach dem Kopiervorgang kann auf die Nachrichten sowie die kopierten Ids zugegriffen werden. 

use Brandbox\Framework\Brandbox\Doctrine; $copyManager = $this->staticController(Doctrine\Manager\CopyManager::class); $logger = $copyManager->root($entities); $copiedId = $copyManager->getCopiedId($logger, $repository, $sourceId); $messages = $logger->all();

Eventübersicht

Klassenname

Beschreibung

Klassenname

Beschreibung

OnExecuteManagerCopy

Wird von allen Methoden in Doctrine\Manager\CopyManager::class ausgelöst