Das Kopieren von Datensätzen ist im Doctrine\Manager\CopyManager geregelt. Es stehen unterschiedliche Methoden zur Verfügung, um das Kopieren zu ermöglichen (siehe nachfolgende Überschicht).
Info |
---|
|
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
Codeblock |
---|
|
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)
; |
...
Codeblock |
---|
|
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 |
OnExecuteManagerTruncate | Wird von Doctrine\Manager\DeleteManager::truncate() ausgelöst |