是否有可能在 SQLFilter 中获取 symfony2 的服务容器,或者我可以直接将服务用作 SQLFilter?
我知道这不是一种“干净”的方式,但我必须在查询的最终提交被触发之前直接执行几次检查(因为我必须将条件附加到 WHERE 语句,我不能使用生命周期-此时发生的事件)。
是否有可能在 SQLFilter 中获取 symfony2 的服务容器,或者我可以直接将服务用作 SQLFilter?
我知道这不是一种“干净”的方式,但我必须在查询的最终提交被触发之前直接执行几次检查(因为我必须将条件附加到 WHERE 语句,我不能使用生命周期-此时发生的事件)。
它不干净,但你可以试试这个:
<?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);
}
}