Sonata Admin Bundle - 添加多步骤批处理操作

Posted

技术标签:

【中文标题】Sonata Admin Bundle - 添加多步骤批处理操作【英文标题】:Sonata Admin Bundle - add a multi step batch action 【发布时间】:2014-07-22 16:27:15 【问题描述】:

我需要向我的 SonataAdmin 实体添加一个自定义批处理操作,该实体允许用户在列表视图中选择多个项目,然后选择自定义批处理操作(称为“编辑日期”)然后...这里是我被卡住了...显示一个包含两个日期字段的表单,提交时会使用输入的日期更新选定的列表项。

甚至可以在 SonataAdminBundle 中进行这样的多步骤批处理操作吗?

【问题讨论】:

【参考方案1】:

您可以将日期字段添加到模板中:

# 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() 方法中的值。

【讨论】:

以上是关于Sonata Admin Bundle - 添加多步骤批处理操作的主要内容,如果未能解决你的问题,请参考以下文章

Sonata Media Bundle 与 Sonata Admin Bundle 3.0(或 2.4)

Sonata Admin Bundle - 自定义模板

sonata-project/user-bundle dev-master 与 sonata-project/doctrine-orm-admin-bundle 冲突

Sonata admin-bundle - 没有注销导航栏

Sonata Admin Bundle ACL 不授予编辑权限

Sonata Admin Bundle 中的标签