bugfix> php > 投稿

Symfony 2.xを使用するSonataアプリケーションのprePersistで実行する非常に基本的なイベントリスナーを取得しようとしています。

リスナーロジックは次のとおりです。

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 件
  • 厳密に言えば、これは私の元の質問に対する答えではありませんが、価値があるのは、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.');
        }
    }
    
    

あなたの答え