在 listener/subscriber 中使用的 SonataAdmin preBatch 事件

SonataAdmin preBatch Event for usage in listener/subscriber

是否有任何选项可以在 subscriber/listener 中捕捉奏鸣曲批处理动作?

已经尝试使用类似 sonata.admin.event.persistence.pre_batch,但是不行

为什么我需要那个?

当用户批量删除包含图像的实体时(背后有工作自定义上传系统),那么我也应该从文件系统中删除所有图像。

我目前的配置

(这里一切正常 我也想添加 pre_batch 事件,但到目前为止没有成功)

    image.uploader.subscriber:
    class: AdminBundle\EventListener\ImageUploaderSubscriber
    arguments:
        - '@image.remover'
        - '@image.uploader'
    tags:
        - {name: kernel.event_listener, event: sonata.admin.event.persistence.pre_persist, method: prePersist}
        - {name: kernel.event_listener, event: sonata.admin.event.persistence.pre_update, method: preUpdate}
        - {name: kernel.event_listener, event: sonata.admin.event.persistence.pre_remove, method: preRemove}

似乎没有实现此事件的挂钩,因为它只能从管理员调用它 Class。

所以,也许有自己创建事件的选项?

Sonata admin 模型管理器(用于批量删除)实际上是在遍历实体。所以你可以挂钩内部学说生命周期回调并在那里做你的逻辑。

但通常 preBatch 操作不会触发任何事件,但您仍然可以在您的管理 preBatchAction 中覆盖此 class 并从那里触发您的事件。