是否有任何选项可以捕获订阅者/侦听者中的奏鸣曲批量操作?
已经尝试过使用像 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}
似乎没有实现此事件的钩子,因为它只能从Admin Class中调用它。
那么,也许可以选择自己创建Event?
答案 0 :(得分:1)
Sonata管理模型管理器(由批量删除使用)实际上是在实体上进行迭代。所以你可以在doctrine生命周期回调中挂钩并在那里做你的逻辑。
但总的来说,preBatch
操作不会触发任何事件,但您仍然可以在管理类中覆盖此preBatchAction
并从那里触发您的事件。