1
有沒有可能在SQLFilter中獲得symfony2的服務容器,或者我可以直接使用服務作爲SQLFilter?我知道這不是一種「乾淨」的方式,但我必須在查詢的最終提交被激發之前直接執行多次檢查(因爲我必須將條件附加到WHERE語句中,我可以'此時使用生命週期事件)。有沒有辦法在SQLFilter中訪問symfony2容器?
有沒有可能在SQLFilter中獲得symfony2的服務容器,或者我可以直接使用服務作爲SQLFilter?我知道這不是一種「乾淨」的方式,但我必須在查詢的最終提交被激發之前直接執行多次檢查(因爲我必須將條件附加到WHERE語句中,我可以'此時使用生命週期事件)。有沒有辦法在SQLFilter中訪問symfony2容器?
這是不乾淨的,但你可以試試這個:
<?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);
}
}
不錯,這正是我一直在尋找,它就像一個魅力:)謝謝! – sweikenb