Como excluir uma entidade de um modelo com uma lista de entidades (CRUD)?

Explicação:

Eu geramos o CRUD de uma entidade, obtendo as seguintes ações padrão:

indexAction (): lista todas as entidades.showAction ($ id): localiza (por ID) e exibe uma entidade.deleteAction ($ id): exclui uma entidade.outras ações.

Então, eu vi que só posso excluir uma entidade dentro das ações que usam o param $ id (por exemplo: showAction ($ id)), masEu quero excluir uma entidade dentro do modelo indexAction porque eu salvo uma etapa para os usuários.

O deleteAction precisa de um pedido, um ID e usa o método POST.

Eu estava tentando codificar algo como:

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

Quando executo a ação, recebo o seguinte erro:

Nenhuma rota encontrada para "GET / acme / something / 4 / delete": Método não permitido (Permitir: POST, DELETE)

Essa resposta é clara e é o que eu esperava, então tentei fazer algo semelhante, mas usando um formulário. Algo assim:

<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>

Mas a linha{{ form_widget(delete_form) }} é um problema porque oindexAction() não tem nenhum parâmetro e precisa deste código:

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

Como você pode ver, o parâmetro $ id é obrigatório para o métodocreateDeleteForm($id) mas eu não consigoindexAction().

Questão:

Qual é a melhor maneira de resolver esse problema?

questionAnswers(1)

yourAnswerToTheQuestion