2016-09-14 8 views
0

Я пытаюсь следовать за this section на официальном сайте Sonata, чтобы добавить в мой пользовательский контроллер.Добавить запись пользовательского контроллера в меню Sonata

У меня есть рабочий контроллер;

class HelloController extends Controller { 

    /** 
    * 
    * @Template() 
    * @param type $name 
    * @return type 
    */ 
    public function indexAction($name) 
    { 
     $admin_pool = $this->get('sonata.admin.pool'); 

     return array(
      'admin_pool' => $admin_pool, 
      'name' => $name 
     ); 
    } 
} 

Я зарегистрировал контроллер как услугу в моем файле services.yml;

app.hello_controller: 
    class: AppBundle\Controller\HelloController 

И, наконец, я добавил маршрут контроллера в качестве элемента в меню;

sonata_admin: 
    dashboard: 
     groups: 
      Monitoring: 
       items: 
        - app.hello_controller 

Но теперь я получаю сообщение об ошибке;

Исключение было брошено во время рендеринга шаблона («службы администратора„app.hello_controller“не найден в админ бассейне.») В SonataAdminBundle: Core: add_block.html.twig в строке 5.

Может кто-нибудь, пожалуйста, скажите мне, что мне не хватает, чтобы добавить пункты меню таким образом?

ответ

2

Вам необходимо исправить свою конфигурацию. В вашем примере вы добавляете в службу администратора службу администратора с идентификатором службы app.hello_controller.

Что вам нужно сделать, это добавить следующий конфиг добавить один конкретный маршрут/действие от контроллера:

config.yml

sonata_admin: 
    dashboard: 
     groups: 
      Monitoring: 
       items: 
        - route:  your_route_name 
         label:  Your Menu Item Label