Come restituire un object da una query DQL?

Ho scritto una query DQL in Doctrine 2:

$qb->select('r.position') ->from('\Entities\Races', 'r') ->where($qb->expr()->eq('r.entrantId', ':entrant_id')) ->setParameter('entrant_id', $this->entrantId); $query = $qb->getQuery(); $aRaces = $query->getResult(); 

Attualmente restituisce i risultati della query in un arrays in questo modo:

 Array ( [0] => Array ( [position] => 10 ) [1] => Array ( [position] => 4 ) ) 

Voglio che il risultato restituisca una matrix di oggetti Races in modo che possa accedere ai methods associati all'object (sono abbastanza sicuro che la versione precedente di Doctrine abbia restituito gli oggetti per impostazione predefinita).

Provai:

 $aRaces = $query->getResult(Query::HYDRATE_OBJECT); 

Ma questo non ha fatto la differenza.

Apprezzo l'aiuto

Stai recuperando solo la colonna di position dal DB. Prova a sostituire select('r.position') con select(r) . Vedi riferimento DQL

Se sono necessari oggetti con solo attributo di position , fare riferimento a oggetti parziali

Il: $qb->getResult(\Doctrine\ORM\Query::HYDRATE_OBJECT);

Restituisce un arrays con object e puoi catturarli con: $match[0];

Se si desidera restituire un singolo risultato, è necessario utilizzare: $qb->getOneOrNullResult()

Non ho potuto risolvere il mio problema con la tua soluzione, qui la mia parte di codice:

 $qb = $this->_objectManager->createQuery('Select d from Hotbed\Entity\Department d where d.id <> :id and d.title = :title'); $qb->setParameters(arrays('id' => $context['id'], 'title' => $value)); $match = $qb->getResult(\Doctrine\ORM\Query::HYDRATE_OBJECT); 

$ match restituisce questo:

 arrays(1) { [0] => object(Hotbed\Entity\Department)#626 (4) { ['inputFilter':protected] =&gt; NULL ['id':protected] =&gt; int(25) ['title':protected] => string(4) '2222' ['state':protected] => int(0) } } 

grazie per qualsiasi aiuto