我需要向我的SonataAdmin实体添加一个自定义批处理操作,允许用户在列表视图中选择多个项目,然后选择自定义批处理操作(称为“编辑日期”)然后......这里是我被卡住了......显示一个带有两个日期字段的表单,在提交时,会使用输入的日期更新所选列表项。
甚至可以在SonataAdminBundle中进行这样的多步批量操作吗?
答案 0 :(得分:2)
您可以将日期字段添加到模板中:
{# 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. (Optional) Overriding the batch selection template
这会将您的字段添加到每一行。
如果您只需要一次,例如在页脚中(批处理操作选择和导出功能附近),您可以覆盖管理类中的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()方法中的值。