Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

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).

title
Info

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

Codeblock
languagephp
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. 

Codeblock
languagephp
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