2013-06-04 98 views
0

我試圖在Doctrine中設置一個事件觸發器,這樣我就可以訪問querybuilder atm了。Doctrine 2事件

我設置我的模塊中的監聽器:

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

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

而且在我的倉庫:

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

但好像我做錯了或丟失服用點,因爲它不工作..

我不能找到一種方法來實現這個簡單的常規..

謝謝。

回答

0

您必須用您需要的事件函數定義一個類,以便自動調用該類。

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

然後,創建ExampleEvent類,並添加 「榜樣」 作用:

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

後,你只需要觸發事件,在您的回購:

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

我沒有嘗試,但簡而言之,它將是這樣的。