2014-07-25 3 views
1

настроить меню ПКН внутри продукта класса соната админ, и я хочу, чтобы добавить ссылку на другой класс администратора (категория)Как я могу получить пользовательские маршруты внутри класса соната администратора

мой код:

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» не существует. Маршруты от отладки маршрутизатора приложения/консоли также не работают. У меня нет доступа к инъекции @router в сервисах, потому что определение сервиса внутри вендоров.

Любая идея?

ответ

2

Я нашел простое решение. Я была ошибка, потому что пункт меню по умолчанию определяется в сонатной демо выглядит следующим образом:

$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

В вашем администратора, вы можете переопределить метод configureRoutes, как показано в документации:

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

Это позволит добавить пользовательские маршруты для администратора.

+0

Я думал, что мне не нужно создавать новый маршрут, потому что я хотел использовать существующий маршрут. Это был резон, почему я не пробовал ваше решение до –

+0

@ user2482094 Вы пытались использовать подчеркивания вместо периодов для маршрутов? Соната использует символы подчеркивания для названий маршрутов. – jrdn

+0

Да, я попробовал.Когда я добавляю название соната со знаком подчеркивания, я получил исключение: Маршрут не существует. Я перекодировал конфигурацию поставщика (admin.xml), и у меня был доступ только к маршрутам из сервисов, которые определяются в config, например sonata.product.admin.product.variation –

Смежные вопросы