¿Cómo eliminar una entidad de una plantilla con una lista de entidades (CRUD)?

Explicación:

He generado el CRUD de una entidad, obteniendo las siguientes acciones predeterminadas:

indexAction (): Enumera todas las entidades.showAction ($ id): encuentra (por ID) y muestra una entidad.deleteAction ($ id): borra una entidad.otras acciones.

Por lo tanto, he visto que solo puedo eliminar una entidad dentro de las acciones que usan param $ id (por ejemplo, showAction ($ id)) peroQuiero eliminar una entidad dentro de la plantilla indexAction porque guardo un paso para los usuarios.

El deleteAction necesita una solicitud, una identificación y utiliza el método POST.

Estaba tratando de codificar algo como:

<a href="{{ path('entity_delete', { 'id': entity.id }) }}" class="btn">
 <img src="{{ asset('bundles/acme/images/delete.png') }}" ... />
</a>

Cuando ejecuto la acción, me sale el siguiente error:

No se encontró una ruta para "GET / acme / something / 4 / delete": Método no permitido (Permitir: POST, BORRAR)

Esta respuesta es clara y es lo que esperaba, así que intenté hacer algo similar pero utilizando un formulario. Algo como esto:

<form id="formDelete" action="{{ path('entity_delete', { 'id': entity.id }) }}" method="post">
    <input type="hidden" name="_method" value="DELETE" />
    {{ form_widget(delete_form) }}
    <a href="{{ url('entity_delete') }}" class="btn" onclick="document.getElementById('formDelete').submit();">
        <img src="{{ asset('bundles/acme/images/delete.png') }}" ... />
    </a>
</form>

Pero la linea{{ form_widget(delete_form) }} es un problema porque elindexAction() No tiene ningún parámetro y necesita este código:

$deleteForm = $this->createDeleteForm($id);
return $this->render('AcmeBundle:Demo:index.html.twig', array(
            'entities'      => $entities,
            'delete_form' => $deleteForm->createView(),
        ));

Como puede ver, el parámetro $ id es obligatorio para el métodocreateDeleteForm($id) pero no puedo conseguirlo deindexAction().

Pregunta:

¿Cuál es la mejor manera de resolver este problema?

Respuestas a la pregunta(1)

Su respuesta a la pregunta