2014-02-14 62 views
0

我想以優化的方式獲取我的所有項目(編號,標題,說明)及其狀態(僅編號和標題)。從Symfony2中獲取實體和相關實體的特定字段?

在我的倉庫:

public function getProjectsWithStatuses() { 
    $query = $this->createQueryBuilder('e') 
     ->leftJoin('e.statuses', 'r') 
     ->getQuery(); 

    return $query->getResult(); 
} 

而且,在我的控制器:

$em = $this->getDoctrine()->getManager(); 
$projects = $em->getRepository('TutoCrmBundle:Project')->getProjectsWithStatuses(); 

var_dump($projects); die(); 

我得到了同樣的事情,直接使用該控制器上:

$projects = $em->getRepository('AkimediaCrmBundle:Project')->findAll(); 

但如何創建優化查詢(只需要字段+ earger加載)?

回答

0

你即將加入相關實體,但你沒有任何選擇:

$query = $this->createQueryBuilder('e') 
    ->leftJoin('e.statuses', 'r') 
    ->addSelect('r') 
    ->getQuery(); 
+0

而如果想要得到唯一的項目名稱和它們的狀態頭銜?我試過了: - > addSelect('e.title','r.title'),但我得到了很多。 – foozoor

+0

您可以使用[部分對象](http://docs.doctrine-project.org/en/latest/reference/partial-objects.html)。 – Crozin