Piotr Galas
Piotr Galas

Reputation: 4776

How can I get custom routes inside sonata admin class

I configure knp menu inside sonata admin product class and I want to add link to another admin class (category)

my code is:

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'))
    );
}

Unfortunatly route 'sonata.classification.admin.category.show' doesn't exist. Routes from app/console router debug also desnt work. I have no access to inject @router in servies becouse definition of service is inside vendors.

Any idea?

Upvotes: 1

Views: 8181

Answers (2)

Piotr Galas
Piotr Galas

Reputation: 4776

I found simple solution. I was mistake because default menu item defined in sonata demo looks like this:

$menu->addChild(
            $this->trans('product.sidemenu.view_variations'),
            array('uri' => $admin->generateUrl('sonata.product.admin.product.variation.list', array('id' => $id)))
        );

And to add custom routes I had to added route parameter instead uri.

$menu->addChild(
            $this->trans('product.sidemenu.view_variations'),
            array('route' => 'admin_sonata_classification_category_list' )
        );

Now everything work .

Upvotes: 2

jrdn
jrdn

Reputation: 840

In your admin, you can override the configureRoutes method, as demonstrated in the documentation:

http://sonata-project.org/bundles/admin/2-2/doc/reference/routing.html#create-a-route

This will allow you to add custom routes for your admin.

Upvotes: 2

Related Questions