首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除hook_uninstall上的块?

如何删除hook_uninstall上的块?
EN

Drupal用户
提问于 2018-07-31 22:14:50
回答 1查看 1.7K关注 0票数 3

我有一个定制模块,我的模块,将创建自定义块,block_testblock_test2上的mymodule_install()

卸载模块时,我希望删除mymodule创建的任何块。如何删除正在卸载的模块生成的块?

drush命令(本地开发):

代码语言:javascript
复制
drush pmu mymodule -yv

mymodule.uninstall()

代码语言:javascript
复制
function mymodule_uninstall() {
  // Delete Blocks generated by module.

  /** @var \Drupal\Core\Entity\EntityStorageInterface $block_storage */
  $block_storage = \Drupal::service('entity_type.manager')->getStorage('block');
  /** @var \Drupal\block\Entity\Block[] $blocks */
  $blocks = $block_storage->loadMultiple();
  foreach ($blocks as $block) {
    // I am stuck here. 
  }
}
EN

回答 1

Drupal用户

回答已采纳

发布于 2018-08-04 08:29:22

是的,那么最好遵循上面的强制配置依赖项部分,如果您使用固定的uuid创建内容块,那么您可以将块配置实体放在您的config/install文件夹中,并在其中解释配置依赖项,并且应该自动卸载它。

至少配置实体,如果您想要删除block_content实体,那么使用$block_content = \Drupal::service('entity.repository')->loadEntityByUuid('block_content', 'YOUR_UUID'); $block_content->delete()通过UUID加载它们

票数 1
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/266699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档