diff --git a/core/modules/shortcut/lib/Drupal/shortcut/ShortcutStorageController.php b/core/modules/shortcut/lib/Drupal/shortcut/ShortcutStorageController.php index 4463a86..993a558 100644 --- a/core/modules/shortcut/lib/Drupal/shortcut/ShortcutStorageController.php +++ b/core/modules/shortcut/lib/Drupal/shortcut/ShortcutStorageController.php @@ -22,6 +22,10 @@ protected function attachLoad(&$queried_entities, $revision_id = FALSE) { parent::attachLoad($queried_entities, $revision_id); foreach ($queried_entities as $id => $entity) { + // Flip links array, as UUIDs saved as free indexed array. + if (isset($entity->links)) { + $entity->links = array_flip($entity->links); + } $links = menu_load_links('shortcut-' . $id); foreach ($links as $menu_link) { $entity->links[$menu_link->uuid()] = $menu_link; @@ -61,10 +65,12 @@ public function create(array $values) { * Overrides \Drupal\config\ConfigStorageController::preSave(). */ public function preSave(EntityInterface $entity) { + $links = array(); // Just store the UUIDs. foreach ($entity->links as $uuid => $link) { - $entity->links[$uuid] = $uuid; + $links[] = $uuid; } + $entity->links = $links; parent::preSave($entity); }