src/Acme/DemoBundle/Admin/EntityAdmin.php:
protected function configureRoutes(\Sonata\AdminBundle\Route\RouteCollection $collection)
{
$collection
->add('button_1',
'button_1/{id}',
array('_controller' => 'AcmeDemoBundle:Default:button_1'),
array('id' => '\d+')
)
;
}src/Acme/HelloBundle/Controller/DefaultController.php:
/**
@Route("/button_1/{id}", name="button_1",
requirements={"id" = "\d+"}
)
@Template("AcmeDemoBundle:Default:button_1.html.twig")
*/
public function button_1Action($id)
{
return(array(
'id' => $id
));
}app/Resources/SonataAdminBundle/views/CRUD/base_edit_form.html.twig:
{% block form %}
...
{% else %}
...
{% block formactions %}
...
{% else %}
...
{% if admin.id(object) %}
...
{% if admin.hasroute('button_1') %}
<a class="btn" target="_blank" href="{{ admin.generateObjectUrl('button_1', object) }}">{% trans from 'SonataAdminBundle' %}link_button_1{% endtrans %}</a>
{% endif %}
... <a class="btn btn-success" href="{{ admin.generateObjectUrl('<inform_name_route>', object) }}">View</a>
{% endif %}