0

Doctrine でイベント トリガーをセットアップしようとしています。これにより、atm で実行された querybuilder にアクセスできるようになります。

モジュールにリスナーをセットアップしました:

$doctrineEventManager = $e->getApplication()->getServiceManager()->get('doctrine.eventmanager.default_orm');

$doctrineEventManager->addEventListener('example', function($eventArgs) {
                die("event");
     });

そして私のリポジトリで:

$this->getEntityManager()->getEventManager()->dispatchEvent('example', $query);

しかし、それが機能していないため、何か間違っているか、何かが欠けているようです..

この単純なルーチンを実装する方法が見つかりません..

ありがとう。

4

1 に答える 1

0

必要なイベント関数を使用してクラスを定義する必要があるため、自動的に呼び出されます。

$doctrineEventManager->addEventListener('example', new ExampleEvent());

次に、ExampleEvent クラスを作成し、"example" 関数を追加します。

<?php
class ExampleEvent {
        public function example($eventArgs) {
                // do whatever you want..
        }
}

その後、レポでイベントをトリガーするだけです。

$this->getEntityManager()->getEventManager()->dispatchEvent('example', $eventArgs);

試していませんが、ざっくり言うとこんな感じになります。

于 2013-06-04T15:10:50.383 に答える