Мне нужно добавить настраиваемое пакетное действие к моей сущности 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 () .