Зарегистрируйте прослушиватель событий в приложении Symfony - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь заставить очень простой прослушиватель событий работать на prePersist в приложении Sonata, которое использует Symfony 2.x.

Вот моя логика слушателя:

class GroupAdditionCheckerService implements GroupAdditionCheckerInterface
{
    public function prePersist(LifecycleEventArgs $args)
    {
        die('I am dying');
    }
}

... а вот запись в моем файле services.yml согласно документации :

  app.listener_group_add:
      class: MyOrganization\AppBundle\User\GroupAdditionCheckerService
      tags:
          - { name: doctrine.event_listener, event: prePersist }

Но когда я сохраняю сущность, мой текст "Я умираю" не отображается, и сохранение кажется успешным.

Что мне нужно изменить?

1 Ответ

0 голосов
/ 25 мая 2018

Строго говоря, это не ответ на мой первоначальный вопрос, но он того стоит: переход от prePersist к preUpdate, похоже, решил проблему.Итак, мой файл services.yml теперь выглядит следующим образом:

  app.listener_group_add:
      class: MyOrganization\AppBundle\User\GroupAdditionCheckerService
      tags:
          - { name: doctrine.event_listener, event: preUpdate }

... и мой слушатель выглядит так:

class GroupAdditionCheckerService implements GroupAdditionCheckerInterface
{
    public function preUpdate(\Doctrine\ORM\Event\PreUpdateEventArgs $args)
    {
        die('I am dying.');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...