$siblings = $this->menuLinkManager->getChildIds($parent->getPluginId());
Nhưng câu hỏi chính là làm cách nào để lấy MenuLinkContent khi tôi có đối tượng MenuLinkInterface đó?
Có hai loại ID plugin. Không có hoặc có dấu hai chấm :
.
plugin không có nguồn gốc
Không có chúng trỏ trực tiếp đến một định nghĩa plugin duy nhất.
Ví dụ: menu quản trị
\Drupal::service('plugin.manager.menu.link')->getChildIds('system.admin');
chủ yếu bao gồm các liên kết menu không có nguồn gốc mà ID bạn tìm thấy trong các tệp *.links.menu.yml.
plugin có nguồn gốc
Với dấu hai chấm, phần đầu tiên là ID plugin cơ sở và phần thứ hai là ID phái sinh.
Ví dụ: nếu bạn đã tạo menu chính đa cấp từ giao diện người dùng và áp dụng lệnh này trên menu cha
\Drupal::service('plugin.manager.menu.link')->getChildIds('standard.front_page');
Bạn nhận được các liên kết như thế này
menu_link_content:421a421a-cb1d-33e7-a810-1e7341f7906b
cho plugin cơ sở MenuLinkContent (BTW cũng được xác định trong tệp YAML) với trình dẫn xuất cho các thực thể MenuLinkContent (được xác định bởi UUID).
$entity = \Drupal::service('entity.repository')
->loadEntityByUuid('menu_link_content', '421a421a-cb1d-33e7-a810-1e7341f7906b');
Nếu bạn đã có phiên bản plugin, bạn có thể lấy UUID từ đối tượng plugin. Nhìn thấy https://drupal.stackexchange.com/a/235769/47547