Как я могу выбрать определенные столбцы с помощью createQueryBuilder в Doctrine ORM?

Я использую Doctrine createQueryBuilder() для построения запросов в Symfony2. Но я не хочу брать все столбцы в этом объекте. Как я могу выбрать только идентификатор и имя?

$query = $this->getEntityManager()->createQueryBuilder();
        $query
            ->select('d')
            ->from('AcmeBundle:Demo', 'd')
            ->leftjoin('d.otherEntity', 'o');

        $query->setMaxResults(10);
        $results = $query->getQuery()->getResult();

Большое спасибо,


person Carlos Saez Alfonsea    schedule 22.09.2012    source источник
comment
stackoverflow.com/questions/9465353 /   -  person moonwave99    schedule 22.09.2012
comment
На самом деле ORM — это Doctrine2. Symfony — это веб-фреймворк.   -  person Ninj    schedule 21.04.2016


Ответы (1)


Попробуйте следовать,

$fields = array('d.id', 'd.name', 'o.id');
//$fields = 'partial d.{id, name}, partial o.{id}';  //if you want to get entity object

$query = $this->getEntityManager()->createQueryBuilder();
$query
    ->select($fields)
    ->from('AcmeBundle:Demo', 'd')
    ->leftjoin('d.otherEntity', 'o');

$query->setMaxResults(10);
$results = $query->getQuery()->getResult();
person Mun Mun Das    schedule 22.09.2012
comment
будет ли это гидратировать результат запроса? - person hardik; 18.07.2014
comment
есть ли способ установить поля из setParameter ? - person Vamsi Krishna B; 27.07.2015
comment
partial alias.{comma, fields} у меня не работает на symfony 2.4. Должна ли она работать или это только для новых версий? - person Vandervals; 31.05.2018