Löschen von Datensätzen (DeleteManager)
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 AchtungEs 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 |
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 |
---|---|
| Wird von allen Lösch-Methoden (aber nicht von |
| Wird von |