symfony – 未生成子管理员路由 – Sonata Admin Bundle

我正在尝试将管理员设置为Sonata Admin Bundle中其他管理员的孩子.

我有2个Admin类:

> CategoryAdmin
该类包含以下方法

protected function configureSideMenu(MenuItemInterface $menu, $action, AdminInterface $childAdmin = null)
{            
     $id = $this->getRequest()->get('id');

     $menu->addChild(
         $this->trans('Projects'),
         array('uri' => $this->getChild('sonata.admin.project')->generateUrl('list', array('id' => $id)))
     );
}

> ProjectAdmin
该类包含受保护的$parentAssociationMapping =’category’;
category是表示ManyToOne关联的模型类中的属性.

我在CategoryAdmin的服务配置中添加了以下行

calls:
    - [ addChild, ["@sonata.admin.project"]]

使用此配置不会生成子Admin的路由. SideMenu(顶部菜单)中的链接指向/ admin / project / list?childId = 1& id = 1

这是使用dump()的CategoryAdmin的子项的输出

array:1 [▼
    "sonata.admin.project" => ProjectAdmin {#406 ▶}
]

这意味着我的孩子管理员的配置似乎是正确的.我不知道为什么没有生成子管理员的路由.

我希望有人可以给我一个提示,问题是什么.

最佳答案 您的管理类中是否有$baseRouteName和$baseRoutePattern覆盖?

如果这样做,Sonata将生成具有相同名称的子路由和父路由,从而导致父路由覆盖子路由.

点赞