Axelerant Blog: Adding Dynamic Values To The Menu Links In Drupal

In Drupal 8 the menu system, in comparison to Drupal 7 has become much more flexible, and the areas of functionality are now separated into different systems. 

While we were working on one of our client’s projects, we came across a requirement where we had to have an admin for every country and allow them to add and edit the details. 

We decided to have the Country as a Vocabulary and the Countries as the terms in the vocabulary. The details of the Country are made available through fields in the vocabulary. Having done that, now we have every Country mapped to every Country admin. The term edit page should be made available to them as a menu link so that it’s easier to edit the details of the respective Country, as shown in the below screenshot.

This is one of the ways in which the menu-link could be altered dynamically. Other preferred methods could be to opt for hooks, commonly used  hook_menu_links_discovered_alter() for statically defined menu-links, hook_link_alter to alter the parameters for links. Here is the list of hooks the Menu API had to offer.