2014-02-14 4 views
0

Я хочу получить все мои проекты (id, title, description) с их статусами (только id и title) оптимизированным образом.Получить конкретные поля от объекта и связанного объекта с 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(); 

Но как для создания оптимизированного запроса (нужны только поля + загрузка с большим объемом)?

ответ

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

Смежные вопросы