web-dev-qa-db-fra.com

Comment supprimer toutes les entités d'un bundle?

J'utilise le module Paragraphs et je ne peux pas supprimer le type de paragraphe tant que je n'ai pas supprimé le contenu du paragraphe. Je peux utiliser admin/modules/uninstall/entity/paragraph, mais cela supprimera les paragraphes de tous types.

3
Abdulla Abu Zakham

Il existe quelques exemples de suppression de nœuds d'un certain type de contenu. Dans ce cas, node est le type d'entité et article peut être un bundle (type de contenu). Ce n'est pas différent. paragraph est l'entité et [paragraph type] est le bundle.

Par exemple, ce message: https://stackoverflow.com/questions/34593060/drupal-8-delete-all-nodes-of-the-same-type

Il existe quelques alternatives répertoriées, mais je suppose que cela devrait fonctionner:

$paragraphs = \Drupal::entityTypeManager()
    ->getStorage('paragraph')
    ->loadByProperties(array('type' => 'your_paragraph_type')); // System name

foreach ($paragraphs as $paragraph) {
    $paragraph->delete();
}
7
Neograph734

Cela a semblé fonctionner pour moi ...

$paragraph_types = array('your_paragraph_types');
foreach ($paragraph_types as $paragraph_type) {
    $para_type = \Drupal::entityManager()->getStorage('paragraphs_type')->load($paragraph_type);
    if ($para_type) {
      $para_type->delete();
    }
  }
2
Matt