web-dev-qa-db-ja.com

バンドルのすべてのエンティティを削除するにはどうすればよいですか?

私は Paragraphs モジュールを使用しており、段落のコンテンツを削除するまで段落タイプを削除できません。 admin/modules/uninstall/entity/paragraphを使用できますが、これによりすべてのタイプの段落が削除されます。

3

特定のコンテンツタイプのノードを削除する例がいくつかあります。その場合、nodeはエンティティタイプであり、articleはバンドル(コンテンツタイプ)である可能性があります。これも同じです。 paragraphはエンティティであり、[paragraph type]はバンドルです。

たとえば、この投稿: https://stackoverflow.com/questions/34593060/drupal-8-delete-all-nodes-of-the-same-type

いくつかの代替案がリストされていますが、これはうまくいくと思います:

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

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

これは私にはうまくいったようです...

$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