Соната Admin Bundle – добавление многоступенчатого пакетного действия

Мне нужно добавить настраиваемое пакетное действие к моей сущности SonataAdmin, которая позволяет пользователю выбирать несколько элементов в представлении списка, а затем выбирать настраиваемое пакетное действие (называемое «датами редактирования»), затем … и вот где я застрял … отображает форму с двумя полями даты, которые при отправке обновляют выбранные элементы списка с введенными датами.

Возможно ли иметь также многоэтапное пакетное действие в SonataAdminBundle?

Вы можете добавить свои поля даты в шаблон:

{# in Acme/ProjectBundle/Resources/views/CRUD/list__batch.html.twig #} {# See SonataAdminBundle:CRUD:list__batch.html.twig for the current default template #} {% extends admin.getTemplate('base_list_field') %} {% block field %} <input type="checkbox" name="idx[]" value="{{ admin.id(object) }}" /> {# your date fields here #} <input type="date" name="start" /> <input type="date" name="end" /> {% endblock %} 

Источник: 13.2. (Необязательно) Переопределение шаблона выбора партии

Это добавит ваши поля в каждую строку.

Если вам нужны только поля, например, в нижнем колонтитуле (рядом с функцией выбора партии и экспорта), вы можете переопределить шаблон CRUD / base_list.html.twig в своем классе администратора:

 public function getTemplate($name) { switch ($name) { case 'list': return 'MyBundle:MyAdmin:list.html.twig'; break; default: return parent::getTemplate($name); break; } } 

А затем используйте значения внутри вашего метода batchActionMultiStep () .