ฉันพยายามหาความสัมพันธ์ระหว่าง MenuLink และ MenuLinkContent
ฉันกำลังสร้างรายการเมนูใหม่เช่น:
$menuItem = MenuLinkContent::create($params);
ฉันยังสามารถค้นหาองค์ประกอบเหล่านั้นเช่น:
$menuItems = \Drupal::entityTypeManager()->getStorage('menu_link_content')->loadByProperties(['link.uri' => "ภายใน:$path"]);
และนั่นได้ผลดี ตอนนี้ถ้าฉันต้องการหนึ่งในวัตถุเหล่านั้น ฉันอยากได้มันเป็น "พี่น้อง" - วัตถุอื่นที่ใช้พาเรนต์เดียวกัน
ฉันมีโครงสร้างแปลก ๆ :
$this->menuLinkManager = \Drupal::service('plugin.manager.menu.link');
$parentId = $menuItem->getParentId();
$parent = $this->menuLinkManager->createInstance($this->menuLinkManager->getDefinition($parentId)['id']);
และที่นี่ฉันได้รับมันเป็นพาเรนต์ แต่ไม่ใช่วัตถุ MenuLinkContent อีกต่อไป แต่เป็นตัวอย่างของ MenuLinkInterface มีบางฟิลด์เป็น MenuLinkContent แต่ไม่ใช่ทั้งหมด เช่น. ฉันไม่รู้วิธีรับเส้นทางลิงก์และสิ่งที่คล้ายกัน
ฉันสามารถไปต่อได้:
$siblings = $this->menuLinkManager->getChildIds($parent->getPluginId());
แต่คำถามหลักคือ hจะได้รับ MenuLinkContent เมื่อฉันมีวัตถุ MenuLinkInterface หรือไม่
คำถามย่อย - ทำไมโอ้ทำไมระบบเมนูแบบขนานและคลาสเมนูแบบขนานจึงจำเป็น