How to fetch class instead of array in Doctrine 2
doctrine, doctrine-orm, doctrine-query, php
Solution
Yes you can, usually using:
$repository
->createQueryBuilder('p')
->getQuery()
->execute()
;
This should return you an array of entities.
If you want to get a single entity result, use either `getSingleResult` or `getOneOrNullResult`:
$repository
->createQueryBuilder('p')
->getQuery()
->getOneOrNullResult()
;
Warning: These method can potentially throw `NonUniqueResultException`.
Edit: Ok, so the question was about partial objects: http://docs.doctrine-project.org/en/latest/reference/partial-objects.html
Problem
I am able to fetch my data from database by using this structure: ``` $user = $this->getDoctrine() ->getRepository('AcmeDemoBundle:Emails') ->find(8081); ``` When I do that, I am able to get my data like this: ``` $user->getColumnNameHere(); ``` Basically, I am able to use Entity Class. But if I want to use QueryBuilder instead of `find` I am only getting associative arrays. ``` $product->createQueryBuilder('p') ->setMaxResults(1) ->where('p.idx = :idx') ->select('p.columnNameHere') ->setParameter('idx', 8081) ->orderBy('p.idx', 'DESC') ->getQuery(); $product = $query->getResult(); ``` $product returns as array. Is it possible to fetch it with Entity Manager Class? If yes, how? I digg the documentation but it seems not possible or not exist in the doc or I'm just blind :)