0

symfony2 Docs中,他们说要使用此代码

$listener = new AcmeListener();
$dispatcher->addListener('foo.action', array($listener, 'onFooAction'));

我有两个问题

  1. 我需要在哪个文件中写入该行
  2. 我可以在第一个参数中写什么其他事件,例如foo.action。我的意思是事件buitin或教义事件或symfony事件或自定义
4

2 回答 2

0

如果您将组件用作框架的一部分,则不需要。只需声明一个标记为事件侦听器的服务。就该事件而言,它是自定义事件的示例。您可以随意命名您的活动。

于 2012-07-26T01:48:09.297 回答
0

你必须像这样在你的控制器中写

if ($form->isValid()) {
            $em = $this->getDoctrine()->getEntityManager();
            $em->persist($entity);
            $em->flush();


            $dispatcher = $this->container->get('event_dispatcher');
            $dispatcher->dispatch('your.event.name', new YourEvent($entity));

}
于 2012-07-26T06:23:15.037 回答