0

symfony2 Docsでは、このコードを使用するように言われています

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

2つの質問があります

  1. その行をどのファイルに書き込む必要がありますか
  2. のような最初の引数に書き込める他のイベントfoo.action。つまり、イベント buitin または doctrine イベントまたは 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 に答える