Drupal 8 自定义实体菜单路径

Drupal 8 Custom entity Menu Paths

当我使用 Drupal 控制台创建自定义实体时:

drupal generate:entity:content

然后默认生成菜单路径并且它们工作得很好,即在结构菜单中有两个条目用于列出实体和用于管理自定义实体,它包括 sub-menus 用于管理字段,管理表单显示和管理显示。

现在,为了避免使结构菜单混乱,我喜欢在路径下的 SystemController::systemAdminMenuBlockPage 下收集模块的所有自定义实体 /admin/structure/myCustoModuleGroup/myCustomEntityType

通过将 'myCustoModuleGroup' 插入到实体注释和 MyCustomEntityHtmlRouteProvider 的路径中,这很容易。然后我更新 mymodule.links.task.yml

的 base_route

但是,管理字段等的所有子菜单都消失了。这可能是因为他们不再有正确的 parent。

我想以菜单项结束:

structure->CustomModule->CustomEntity1Type->Manage Fields
structure->CustomModule->CustomEntity1Type->Manage Form Display
structure->CustomModule->CustomEntity1Type->Manage Display.

structure->CustomModule->CustomEntity2Type->Manage Fields

等等

有人能解决这个问题吗?我假设有一种方法可以在代码中更改菜单 link parent,因为它肯定在某处声明过,但我找不到它(花了一整天的时间尝试)。

我能够像这样在 custom_entity.links.menu.yml 中运行它:

entity.custom_entity.fields:
  title: 'Manage fields'
  route_name: entity.custom_entity.field_ui_fields
  description: 'Manage fields'
  parent: entity.custom_entity.collection
  weight: 1

entity.custom_entity.form-display:
  title: 'Manage form display'
  route_name: entity.entity_form_display.custom_entity.default
  description: 'Manage form display'
  parent: entity.custom_entity.collection
  weight: 2

entity.custom_entity.display:
  title: 'Manage display'
  route_name: entity.entity_view_display.custom_entity.default
  description: 'Manage display'
  parent: entity.custom_entity.collection
  weight: 3