Соната Пакетные Операции И Доктрина Крючков
Я создал админку Соната (в Symfony2 пакет http://sonata-project.org/about) и я добавил событие в preRemove крюк (учение).
В нескольких словах, когда я удаляю запись, запустите curl в другой сервис.
Все работает.
Но Sonata также имеет "пакетные операции", где я могу выбрать несколько строк и выбрать"Удалить все выбранные".
Но , Если я выберу "удалить все выбранные", завиток не запустится.
В preRemove крюком (доктриной) это не называется.
Есть человек, который может мне помочь?!
Спасибо
2 ответов:
Похоже, что действие batch delete действительно избегает вызова метода
preRemove(см.Sonata\AdminBundle\Controller\CRUDController::batchActionDelete, который вызываетSonata\DoctrineORMAdminBundle\Model\ModelManager::batchDelete).Однако у вас есть варианты:
- переопределите это
batchActionDeleteс помощью расширения пользовательского контроллераCRUDController. SonataMediaBundle делает это .- Регистрация реального события доктрины (не рекомендуется) (Symfony cookbook tutorial )
Есть еще один вариант, вы можете использовать крюк preBatchAction в вашем классе администратора.
public function preBatchAction($actionName, ProxyQueryInterface $query, array & $idx, $allElements) { if ($actionName == 'delete') { // logic here } }
Comments