删除Drupal 8中的模块卸载内容

时间:2017-08-08 05:52:27

标签: drupal-8

我有一个自定义模块,可以在安装时创建内容类型。如果我使用该内容类型创建内容,则在卸载模块时不会删除该内容。

如何在卸载模块时删除从该内容类型创建的所有内容?

删除hook_uninstall上的模块配置没有帮助。

提前致谢!

1 个答案:

答案 0 :(得分:0)

由于@ Kevin-wenger答案使用了已弃用的entityManager

使用entityTypeManager的代码如下:

/**
 * Implements hook_uninstall().
 */
function MYMODULE_uninstall() {

  // Delete all nodes of given content type.
  $storage_handler = \Drupal::entityTypeManager()
    ->getStorage('node');
  $nodes = $storage_handler->loadByProperties(['type' => 'MACHINE_NAME_OF_TYPE']);
  $storage_handler->delete($nodes);

  // Delete content type.
  $content_type = \Drupal::entityTypeManager()
    ->getStorage('node_type')
    ->load('MACHINE_NAME_OF_TYPE');
  $content_type->delete();
}

来源:https://drupal.stackexchange.com/a/217938