2014-02-14 88 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