2013-02-01 66 views
1

有沒有可能在SQLFilter中獲得symfony2的服務容器,或者我可以直接使用服務作爲SQLFilter?我知道這不是一種「乾淨」的方式,但我必須在查詢的最終提交被激發之前直接執行多次檢查(因爲我必須將條件附加到WHERE語句中,我可以'此時使用生命週期事件)。有沒有辦法在SQLFilter中訪問symfony2容器?

回答

5

這是不乾淨的,但你可以試試這個:

<?php 

class MyBundle extends Bundle 
{ 
public function boot() 
{ 
    $em = $this->container->get('doctrine.orm.default_entity_manager'); 
    $conf = $em->getConfiguration(); 
    $conf->addFilter(
     'test', 
     'Doctrine\Filter\TestFilter' 
    ); 

    $em->getFilters()->enable('test')->setContainer($this->container); 
} 
} 
+0

不錯,這正是我一直在尋找,它就像一個魅力:)謝謝! – sweikenb

相關問題