Drupal 获取当前节点的父菜单项

Drupal 获取当前节点的父菜单项,drupal,drupal-8,Drupal,Drupal 8,我正在尝试获取我当前所在节点的父菜单项: $node_id = // some id $menu_link_manager = \Drupal::service('plugin.manager.menu.link'); $menu_link = $menu_link_manager->loadLinksByRoute('entity.node.canonical', array('node' => $node_id)); $parent = $menu_link->getPar

我正在尝试获取我当前所在节点的父菜单项:

$node_id = // some id
$menu_link_manager = \Drupal::service('plugin.manager.menu.link');
$menu_link = $menu_link_manager->loadLinksByRoute('entity.node.canonical', array('node' => $node_id));
$parent = $menu_link->getParent();
但由于某些原因,它总是会出现以下错误:

Error: Call to a member function getParent() on array
当我检查
$menu\u link
时,我可以清楚地看到它在那里:

getParent()
的方法似乎也是正确的:

非常感谢您的帮助

返回
\Drupal\Core\Menu\MenuLinkInterface
的数组。所以当你打电话时:

$menu_link_manager->loadLinksByRoute()
您得到的是一个数组而不是一个对象(Drupal经常在您可能需要对象的地方返回数组)。您的路由可以位于多个菜单链接上,因此您可能需要考虑从该数组中提取什么,但最简单的解决方案是使用or提取数组中的第一个元素