пользовательское действие в SonataAdminBundle

На этой страницея нашел, как добавить маршрут для моего пользовательского действия

protected function configureRoutes(RouteCollection $collection) {
    $collection->add('ispremium', $this->getRouterIdParameter().'/ispremium'); 
}

После этого я добавляю пользовательское действие в свой класс администратора:

protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->addIdentifier('id')
        ->add('code', null, array('label' => 'Code'))
        ->add('_action', 'actions', array( 
            'actions' => array(  
                'ispremium' => array(
                    'template' => 'AppMyBundleBundle:Admin:ispremium.html.twig'
                )
            )
        ))
    ;
}

Он сгенерировал такой URL-адрес:

/app_dev.php/admin/mobispot/discodes/discode/300876/ispremium

Мой шаблон для этой ссылки:

Link

Я не знаю, как решить эту проблему:

  1. Как определить собственный контроллер для этого маршрута? Теперь у меня ошибка:

    Метод "Sonata\AdminBundle\Controller\CRUDController::ispremiumAction" не существует.

  2. Могу ли я изменить сгенерированный URL с помощью метода generateUrl?

8
задан likeitlikeit 27 August 2012 в 00:21
поделиться