Как удалить сущность из шаблона со списком сущностей (CRUD)?

Объяснение:

Я сгенерировал CRUD объекта, получив следующие действия по умолчанию:

indexAction (): перечисляет все сущности.showAction ($ ID): находит (по идентификатору) и отображает сущность.DeleteAction ($ ID): удаляет объектдругие действия.

Итак, я видел, что могу удалить сущность только внутри действий, которые используют параметр $ id (например, showAction ($ id)), ноЯ хочу удалить объект внутри шаблона indexAction, потому что я сохраняю шаг для пользователей.

Для операции deleteAction требуется запрос, идентификатор и метод POST.

Я пытался закодировать что-то вроде:

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

Когда я выполняю действие, я получаю следующую ошибку:

Не найден маршрут для «GET / acme / что-то / 4 / delete»: метод не разрешен (разрешено: POST, DELETE)

Этот ответ ясен, и это то, что я ожидал, поэтому я попытался сделать что-то подобное, но с помощью формы. Что-то вроде этого:

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

Но линия{{ form_widget(delete_form) }} это проблема, потому чтоindexAction() не имеет параметров и нуждается в следующем коде:

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

Как видите, параметр $ id обязателен для методаcreateDeleteForm($id) но я не могу получить это отindexAction().

Вопрос:

Как лучше всего решить эту проблему?

Ответы на вопрос(1)

Ваш ответ на вопрос