有没有办法在SQLFilter中访问symfony2容器?

时间:2013-02-01 14:02:53

标签: symfony service dependency-injection doctrine doctrine-orm

是否有可能在SQLFilter中获取symfony2的服务容器,或者我可以直接将服务用作SQLFilter?

我知道这不是一种“干净”的方式,但是我必须在查询的最终提交被触发之前直接执行几次检查(因为我必须将条件附加到WHERE语句,我不能此时使用生命周期事件。)

1 个答案:

答案 0 :(得分:6)

它不干净,但你可以试试这个:

<?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);
}
}