DQL returning an array of entities instead of objects
Since Doctrine ORM 2.2, you can use the HIDDEN
keyword.
SELECT a, SOME_EXPR() AS HIDDEN sortCond FROM Entity a ORDER BY sortCond DESC
In your example, it would be like following:
$d = $this ->getDoctrine() ->getRepository('XXXWebsiteBundle:Locations') ->createQueryBuilder('l');$d ->select('l') ->addSelect( '( 3959 * acos(cos(radians(' . $latitude . '))' . '* cos( radians( l.latitude ) )' . '* cos( radians( l.longitude )' . '- radians(' . $longitude . ') )' . '+ sin( radians(' . $latitude . ') )' . '* sin( radians( l.latitude ) ) ) ) AS HIDDEN distance' ) ->where('l.enabled = :enabled') ->setParameter('enabled', 1) ->having('distance < :distance') ->setParameter('distance', $requestedDistance) ->orderBy('distance', 'ASC'); $closeresult = $d->getQuery();