Php OnFlush不工作Symfony2 ODM

Php OnFlush不工作Symfony2 ODM,php,mongodb,symfony,Php,Mongodb,Symfony,嗨,我想创建谁在我的包中做了什么的日志。所以我使用的是Symfony2的OnFlush事件。并为此创建了一个侦听器。但它并没有被触发 //我的听众 namespace Edu\AccountBundle\EventListener; use Doctrine\ODM\MongoDB\DocumentManager; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Bundle\Framewor

嗨,我想创建谁在我的包中做了什么的日志。所以我使用的是Symfony2的OnFlush事件。并为此创建了一个侦听器。但它并没有被触发

//我的听众

namespace Edu\AccountBundle\EventListener;
use Doctrine\ODM\MongoDB\DocumentManager;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Bundle\FrameworkBundle\Routing\Router;
use Edu\AccountBundle\CommonFunctions\CommonFunctions;
use Edu\AccountBundle\Constants\allConstants;
use Symfony\Component\HttpFoundation\Session\Session;
use Doctrine\Common\EventSubscriber;
use Doctrine\ODM\Event\OnFlushEventArgs;

class OnFlushListener
{
    private $session;
    private $router;
    private $commonFunctions;
    private $constants;

    public function __construct(Session $session, Router $router, DocumentManager $dm)
    {
        $this->session = $session;
        $this->router = $router;
        $this->dm = $dm;
        $this->commonFunctions  = new CommonFunctions();
        $this->constants        = new allConstants();
    }

    public function onFlush(OnFlushEventArgs $event)
    {
        echo "come here after Saving data";die;
    }
} 
//config.xml

<service id="edu.account.event.listener" class="Edu\AccountBundle\EventListener\OnFlushListener">
    <argument type="service" id="session"/>
    <argument type="service" id="router"/>
    <argument type="service" id="doctrine_mongodb.odm.document_manager"/>
    <tag name="doctrine.event_listener" event = "onFlush" method="onFlush"/>
</service>

当我试图保存任何文档时,它不会被调用。“onFlush”方法。请引导我在这篇文章中遗漏了什么


感谢Advance

您的服务标签名称错误,它应该是
doctor\u mongodb.odm.event\u listener
。有关更多详细信息,请参阅。

请尝试“退出(转储(“保存数据后到这里”)。仍不工作。似乎控件不在那里。config.xml文件在哪里?你清除缓存了吗?你以前更新过条令管理的所有实体吗?我使用的是MongoDB而不是MySql。这就是ODM。我在现在给出此错误之前没有更新文档:ServiceCircularReferenceException:检测到服务“doctrine\u mongodb.odm.default\u document\u manager”的循环引用,路径:“doctrine\u mongodb.odm.default\u document\u manager->doctrine\u mongodb.odm.default\u connection->doctrine\u mongodb.odm.event\u manager->edu.account.event.listener”。不要将
DocumentManager
注入到您的服务中,您将能够从传递到您的方法的
事件中获取一个,我将如何在我的方法中获取DoucMont名称。没有mongoConnection。请指导我第一次使用它。我没有得到任何Symfony+ODM(mongo)的文档,而Symfoy+ORM(mysql)的文档太多了。我想在Add/Update/delete上创建日志您将更适合于
prePersist
preUpdate
preRemove
(或者它们的
post
对应项,设计决策取决于您),因为这些事件是基于每个文档触发的