function MenuTreeStorage::delete
Deletes a menu link definition from the storage.
Parameters
string $id: The menu link plugin ID.
Overrides MenuTreeStorageInterface::delete
File
- 
              core/
lib/ Drupal/ Core/ Menu/ MenuTreeStorage.php, line 419  
Class
- MenuTreeStorage
 - Provides a menu tree storage using the database.
 
Namespace
Drupal\Core\MenuCode
public function delete($id) {
  // Children get re-attached to the menu link's parent.
  $item = $this->loadFull($id);
  // It's possible the link is already deleted.
  if ($item) {
    $parent = $item['parent'];
    $children = $this->loadByProperties([
      'parent' => $id,
    ]);
    foreach ($children as $child) {
      $child['parent'] = $parent;
      $this->save($child);
    }
    $this->doDeleteMultiple([
      $id,
    ]);
    $this->updateParentalStatus($item);
    // Many children may have moved.
    $this->resetDefinitions();
    $this->cacheTagsInvalidator
      ->invalidateTags([
      'config:system.menu.' . $item['menu_name'],
    ]);
  }
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.