我已经使用 Sonata(Symfony2 Bundle http://sonata-project.org/about)创建了一个管理面板,并且我在 preRemove 钩子(Hook)(Doctrine)中添加了一个事件。

简而言之,当我删除一条记录时,将 curl 运行到其他服务。
一切正常。

但是 Sonata 也有“批量操作”,我可以选择多行并选择“删除所有选定的”。

但是 ,如果我选择“删除所有选定的”,则 curl 不会开始。
没有调用 preRemove 钩子(Hook) (Doctrine)。

有人可以帮帮我吗?!

谢谢

最佳答案

看来,批量删除操作确实避免了调用 preRemove 方法(请参阅调用 Sonata\AdminBundle\Controller\CRUDController::batchActionDeleteSonata\DoctrineORMAdminBundle\Model\ModelManager::batchDelete )。

但是,您有以下选择:

  • 使用扩展 batchActionDelete 的自定义 Controller 覆盖该 CRUDControllerSonataMediaBundle does that
  • 注册真实的教义事件(不推荐)( Symfony cookbook tutorial )
  • 关于php - Sonata 批量操作和 Hooks 原则,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18723296/

    10-09 20:58