我用 Sonata(Symfony2 Bundle http://sonata-project.org/about)创建了一个管理面板,并且在 preRemove 钩子(Doctrine)中添加了一个事件。
简而言之,当我删除记录时,将 curl 运行到其他服务。一切正常。
但奏鸣曲也有“批量操作”,我可以选择多行并选择“删除所有选定的”。
但是,如果我选择“删除所有选定的”卷曲没有开始。它没有被调用的 preRemove 钩子(Doctrine)。
有人可以帮助我吗?!
谢谢
我用 Sonata(Symfony2 Bundle http://sonata-project.org/about)创建了一个管理面板,并且在 preRemove 钩子(Doctrine)中添加了一个事件。
简而言之,当我删除记录时,将 curl 运行到其他服务。一切正常。
但奏鸣曲也有“批量操作”,我可以选择多行并选择“删除所有选定的”。
但是,如果我选择“删除所有选定的”卷曲没有开始。它没有被调用的 preRemove 钩子(Doctrine)。
有人可以帮助我吗?!
谢谢
看来,批量删除操作确实避免了调用preRemove
方法(查看Sonata\AdminBundle\Controller\CRUDController::batchActionDelete
哪些调用Sonata\DoctrineORMAdminBundle\Model\ModelManager::batchDelete
)。
但是,您有以下选择:
batchActionDelete
通过使用自定义控制器扩展来覆盖它CRUDController
。 SonataMediaBundle 就是这样做的。还有另一种选择,您可以在管理类中使用 preBatchAction 挂钩。
public function preBatchAction($actionName, ProxyQueryInterface $query, array & $idx, $allElements)
{
if ($actionName == 'delete') {
// logic here
}
}