En este page encontré cómo agregar la ruta para mi acción personalizada.acción personalizada en SonataAdminBundle
protected function configureRoutes(RouteCollection $collection) {
$collection->add('ispremium', $this->getRouterIdParameter().'/ispremium');
}
Después de eso añado acción personalizada en mi clase de administración:
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'
)
)
))
;
}
generó URL como esta:
/app_dev.php/admin/mobispot/discodes/discode/300876/ispremium
Mi plantilla para este enlace:
<a href="{{ admin.generateObjectUrl('ispremium', object) }}">Link</a>
No sé cómo resolver este probl ems:
¿Cómo definir un controlador personalizado para esa ruta? Ahora tengo un error:
El método "Sonata \ AdminBundle \ Controller \ CRUDController :: ispremiumAction" no existe.
¿Puedo cambiar la URL generada con el método generateUrl?
Gracias es mucho! PD Soy novato en Symfony 2.0 y acabo de descubrir que también puedo configurar _controller en $ collection-> add method –