我已经创建了一个带有Sonata(Symfony2 Bundle http://sonata-project.org/about)的管理面板,我在preRemove挂钩(Doctrine)中添加了一个事件。
简单地说,当我删除记录时,运行curl到其他服务。 万事都有效。
但 Sonata还有“批量操作”,我可以选择多行,然后选择“全部删除”。
但是,如果我选择“删除所有选中”,则卷曲不会启动。 preRemove挂钩(Doctrine)它没有被调用。
有人可以帮助我吗?!
由于
答案 0 :(得分:2)
看来,批量删除操作确实避免了调用preRemove
方法(请参阅调用Sonata\AdminBundle\Controller\CRUDController::batchActionDelete
的{{1}})。
但是,你有选择:
Sonata\DoctrineORMAdminBundle\Model\ModelManager::batchDelete
覆盖batchActionDelete
。 SonataMediaBundle does that。答案 1 :(得分:2)
还有另一个选项,您可以在管理类中使用preBatchAction挂钩。
public function preBatchAction($actionName, ProxyQueryInterface $query, array & $idx, $allElements)
{
if ($actionName == 'delete') {
// logic here
}
}