คุณสามารถโหลด ทั้งหมด ลิงก์เมนูที่กำหนดโดยโมดูล (เช่น ลิงก์ที่กำหนดใน *.menu.links.yml กับ MenuLinkManager บริการของ getDefinitions()
วิธีแล้วแยกรายการสำหรับลิงก์ที่กำหนดโดยโมดูลของคุณเท่านั้น
$all_module_link_definitions = \Drupal::service('plugin.manager.menu.link')
->getDefinitions();
// ถัดไปแยกรายการเฉพาะลิงก์ที่กำหนดโดย my_module
$my_module_link_definitions = [];
foreach ($all_module_link_definitions เป็น $plugin_id => $plugin_definition) {
ถ้า ($plugin_definition['provider'] === 'MY_MODULE') {
$my_module_link_definitions[$plugin_id] => $plugin_definition;
}
}
ในทำนองเดียวกันคุณสามารถโหลด ทั้งหมด โมดูลกำหนดงานโลคัลด้วย LocalTaskManager บริการของ getDefintions()
วิธีการแล้วแยกวิเคราะห์รายการเฉพาะงานที่กำหนดโดยโมดูลของคุณ
$all_module_task_definitions = \Drupal::service('plugin.manager.menu.local_task')
->getDefinitions();
// ถัดไปแยกรายการเฉพาะงานที่กำหนดโดย my_module
$my_module_task_definitions = [];
foreach ($all_module_task_definitions เป็น $plugin_id => $plugin_definition) {
ถ้า ($plugin_definition['provider'] === 'MY_MODULE') {
$my_module_task_definitions[$plugin_id] => $plugin_definition;
}
}