0
我有一個自定義模塊,在安裝時創建一個內容類型。如果我使用該內容類型創建內容,則在卸載該模塊時該內容不會被刪除。刪除模塊中的內容卸載Drupal 8
如何在卸載模塊時刪除從該內容類型創建的所有內容?
刪除hook_uninstall上的模塊配置無濟於事。
在此先感謝!
我有一個自定義模塊,在安裝時創建一個內容類型。如果我使用該內容類型創建內容,則在卸載該模塊時該內容不會被刪除。刪除模塊中的內容卸載Drupal 8
如何在卸載模塊時刪除從該內容類型創建的所有內容?
刪除hook_uninstall上的模塊配置無濟於事。
在此先感謝!
您必須在您的mymodule.install
文件中實施hook_uninstall
。
在這個鉤子,你就可以使用下面的代碼刪除每個內容:
/**
* Implements hook_uninstall().
*/
function mymodule_uninstall() {
// Load services.
$queryFactory = \Drupal::service('entity.query')
$nodeStorage = \Drupal::entityManager()->getStorage('node');
// Query all entity.
$query = $queryFactory->get('node')
->condition('type', 'article'); // <-- Change the type here for yours.
$nids = $query->execute();
// Delete entities.
if (!empty($nids)) {
$entities = $nodeStorage->loadMultiple($nids);
$nodeStorage->delete($entities);
}
}
您也可以使用entity_delete_multiple
不過這個功能現在已經過時。 https://api.drupal.org/api/drupal/core%21includes%21entity.inc/function/entity_delete_multiple/8.2.x
希望它會幫助您解決問題。