我需要帮助以获取特定MenuLinkContent的所有MenuLinkContent子项,但找不到解决方案。我试过几种不同的方法,但都没有成功。
下面是我的代码:
//get all MenuLinkContent published with name 'myname'
$main_menu = \Drupal::entityTypeManager()->getStorage('menu_link_content')
->loadByProperties(['menu_name' => 'myname' , 'enabled' => 1]);
foreach ($main_menu as $menu) {
//could not find a better solution, so i have to check if parent is empty.
if ($menu->getParentId()=='') {
//here i'm triyng to get all children,
$child_menu = \Drupal::entityTypeManager()->getStorage('menu_link_content')
->loadByProperties(['menu_name' => 'myname', 'parent' => $menu ]);
正如你所看到的,属性“parent”不适合“$menu”。我尝试了几个不同的属性从'$menu',似乎没有一个匹配我的查询。
如果需要更多的信息,只是问,我会在这里发布。实现这种迭代的其他方法也是受欢迎的。
先谢了。
2条答案
按热度按时间f87krz0w1#
找到了,从@Slim找到了这段代码,运行良好:
下面的代码取自这个答案https://drupal.stackexchange.com/a/224786/89808
“我已经很晚了,但也许可以帮助某人寻找答案,这是我从菜单项生成递归数组的解决方案。
并调用该函数,
unhi4e5o2#
一个简单而直接的解决方案,从问题中修复代码:
引用父对象的正确方法是通过UUID,前缀为
'menu_link_content:'
。