我在sonata admin产品类中配置了knp菜单,我想添加到另一个管理类(类别)的链接
我的代码是:
protected function configureSideMenu(MenuItemInterface $menu, $action, AdminInterface $childAdmin = null)
{
$menu->addChild(
$this->trans('product.sidemenu.link_designer', array(), 'm2m'),
array('uri' => $admin->generateUrl('sonata.classification.admin.category.list'))
);
}
不幸的路线'sonata.classification.admin.category.show'不存在。来自app / console路由器调试的路由也会工作。我无法在服务中注入@router,因为服务的定义在供应商内部。
有什么想法吗?
答案 0 :(得分:2)
我找到了简单的解决方案。我错了,因为在sonata demo中定义的默认菜单项如下所示:
$menu->addChild(
$this->trans('product.sidemenu.view_variations'),
array('uri' => $admin->generateUrl('sonata.product.admin.product.variation.list', array('id' => $id)))
);
要添加自定义路由,我必须添加路由参数而不是uri。
$menu->addChild(
$this->trans('product.sidemenu.view_variations'),
array('route' => 'admin_sonata_classification_category_list' )
);
现在一切正常。
答案 1 :(得分:1)
在您的管理员中,您可以覆盖configureRoutes
方法,如文档中所示:
http://sonata-project.org/bundles/admin/2-2/doc/reference/routing.html#create-a-route
这将允许您为管理员添加自定义路由。