2017-08-08 71 views
0

我有一個自定義模塊,在安裝時創建一個內容類型。如果我使用該內容類型創建內容,則在卸載該模塊時該內容不會被刪除。刪除模塊中的內容卸載Drupal 8

如何在卸載模塊時刪除從該內容類型創建的所有內容?

刪除hook_uninstall上的模塊配置無濟於事。

在此先感謝!

回答

0

您必須在您的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


希望它會幫助您解決問題。