Sonata Admin Bundle自定义查询列表以使用现有存储库

时间:2014-03-25 11:38:38

标签: php symfony doctrine sonata-admin

我的管理类使用createQuery方法

创建自定义列表
public function createQuery($context = 'list')
{
    $query = parent::createQuery($context);
    $query->andWhere(
        ....
    );
    ....
    return $query;
}

一切正常,但由于我已经定义了这个查询的存储库,并且已经为该存储库编写了测试,我想知道是否可以使用doctrine存储库方法而不是这个?

由于

1 个答案:

答案 0 :(得分:15)

当然,只要您返回Sonata \ DoctrineORMAdminBundle \ Datagrid \ ProxyQuery实例,就可以了:

   /**
     * {@inheritDoc}
     */
    public function createQuery($context = 'list')
    {
        $repository = $this->modelManager->getEntityManager($this->getClass())->getRepository($this->getClass());
        $query = new ProxyQuery($repository->createMyCustomQueryBuilder());

        foreach ($this->extensions as $extension) {
            $extension->configureQuery($this, $query, $context);
        }

        return $query;
    }