Добавьте запись пользовательского контроллера в меню 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.

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


person Jack Coolen    schedule 14.09.2016    source источник


Ответы (1)


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

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

config.yml

sonata_admin:
    dashboard:
        groups:
            Monitoring:
                items:
                    - route:     your_route_name
                      label:     Your Menu Item Label
person lordrhodos    schedule 22.09.2016