当对多个菜单项应用相同的节点时,第一个菜单项将实现inActiveTrail,而不是单击当前菜单。
为了在drupal 8站点中进行测试,创建多级菜单并应用下面的代码,它将输出当前的活动菜单数组。只需省略$currentlinkId
和$parameters->setRoot
以查看数组中的inActiveTrail
。
$menu_tree = \Drupal::menuTree();
$menu_name = 'main';
$parameters = $menu_tree->getCurrentRouteMenuTreeParameters($menu_name);
$currentLinkId = reset($parameters->activeTrail);
$parameters->setRoot($currentLinkId);
$tree = $menu_tree->load($menu_name, $parameters);
// Transform the tree using the manipulators you want.
$manipulators = array(
// Only show links that are accessible for the current user.
array('callable' => 'menu.default_tree_manipulators:checkAccess'),
// Use the default sorting of menu links.
array('callable' => 'menu.default_tree_manipulators:generateIndexAndSort'),
);
$tree = $menu_tree->transform($tree, $manipulators);
kint($tree);
发布于 2018-11-27 02:53:24
我从drupal论坛获得反馈,从下面的链接。Drupal.org论坛链接
https://stackoverflow.com/questions/53160811
复制相似问题