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 |
---|---|
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 |
---|---|
OnExecuteManagerCopy | Wird von allen Methoden in Doctrine\Manager\CopyManager::class ausgelöst |