2014-03-25 68 views
2

我有我的管理類創建使用的createQuery方法的列表索納塔管理員捆綁自定義查詢使用現有的資源庫

public function createQuery($context = 'list') 
{ 
    $query = parent::createQuery($context); 
    $query->andWhere(
     .... 
    ); 
    .... 
    return $query; 
} 

這一切都只是正常的自定義列表,但因爲我有倉庫與此查詢已定義和測試已經寫入該存儲庫我想知道是否可以使用doctrine存儲庫方法而不是此?

感謝

+0

https://sonata-project.org/bundles/admin/master /doc/reference/action_list.html#customizing-the-query-used-to-generate-the-list – breq

回答

14

當然可以,只要你返回索納塔\ 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; 
    } 
+1

這裏是關於它的更多信息:https://sonata-project.org/bundles/admin/master/doc/reference /action_list.html#customizing-the-query-used-to-generate-the-list – breq

相關問題