action personnalisée dans SonataAdminBundle

Sur ce page j'ai trouvé comment ajouter de la route pour mon action personnalisée.

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

Après que j'ai ajouter une action personnalisée dans mon Admin catégorie:

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

Il a généré url comme ceci:

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

Mon modèle pour ce lien:

<a href="{{ admin.generateObjectUrl('ispremium', object) }}">Link</a>

Je ne sais comment résoudre ce problèmes:

  1. Comment définir un contrôleur pour l'itinéraire passe?
    Maintenant, j'ai une erreur:

    Méthode "Sonate\AdminBundle\Controller\CRUDController::ispremiumAction" n'existe pas.

  2. Puis-je changer l'url générée avec generateUrl méthode?

OriginalL'auteur Sergei Zherevchuk | 2012-05-24