Symfony 3.1 EventListener方法执行了两次?

时间:2016-06-28 10:14:06

标签: php symfony-3.1

您好我在发送对请求的响应之前做了一个EventListener来做事情。 所以这是我的EventListener:

namespace AppBundle\EventListener;

use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
use Symfony\Component\HttpFoundation\Session\Session;
use Doctrine\ORM\EntityManager;

class RequestListener {

    private $em;
    private $session;

    public function __construct(EntityManager $em, Session $session) {
        $this->em = $em;
        $this->session = $session;
    }

    public function onKernelController(FilterControllerEvent $event) {
        $repo=$this->em->getRepository("AppBundle:FlashMessage");
        $repo->addFlashMessage("test","content");
    }

}

并将其添加到我的服务中:

</services>
    <service id="app.request.listener" class="AppBundle\EventListener\RequestListener">
        <argument type="service" id="doctrine.orm.entity_manager"/>
        <argument type="service" id="session" /> 
        <tag name="kernel.event_listener" event="kernel.controller" />
    </service>
</services>

每件事情都很好。但太好了!实际上,在我的Web浏览器的每个请求中,我的数据库表中都有两个条目(onKernelController方法似乎在每个请求上执行两次)。那么为什么要在每个请求上创建两个条目?

编辑:php bin / console debug:event-dispatcher | grep -i AppBundle 给我:

  #1      AppBundle\EventListener\RequestListener::onKernelController()          0   

0 个答案:

没有答案