我有一个自定义模块,可以在安装时创建内容类型。如果我使用该内容类型创建内容,则在卸载模块时不会删除该内容。
如何在卸载模块时删除从该内容类型创建的所有内容?
删除hook_uninstall上的模块配置没有帮助。
提前致谢!
答案 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();
}