2013-11-18 3 views
1

У меня есть запрос, который использует широту и долготу, получает мне записи, близкие к другой широте и долготе. В запросе я получаю расстояние, но я не знаю, как вернуть его. Это мой код:Получить псевдоним, используя ResultSetMapping

public function findNearUsers($lon, $lat, $dist = 25){ 

     $rsm = new ResultSetMapping; 


     $rsm->addEntityResult('Entities\Users', 'l'); 
     $rsm->addFieldResult('l', 'id', 'id'); 
     $rsm->addFieldResult('l', 'name', 'name'); 
     $rsm->addFieldResult('l', 'birthDay', 'birthDay'); 
     $rsm->addFieldResult('l', 'gender', 'gender'); 

     $query = $this->_em->createNativeQuery(
       "SELECT l.id, l.name, l.birthDay, l.gender, SQRT(
    POW(69.1 * (latitude - (?)), 2) + 
    POW(69.1 * ((?) - longitude) * COS(latitude/57.3), 2)) AS distance 
    FROM users l 
      HAVING distance < (?) 
      ORDER BY distance", $rsm 
     ); 

     $query->setParameter(1, $lat); 
     $query->setParameter(2, $lon); 
     $query->setParameter(3, $dist); 

     return $query->getResult(); 
    } 

Как вы можете видеть, что я вычислить расстояние и иметь в запросе в качестве as distance. Как я могу вернуть distance? Благодаря!

ответ

0

Для тех, у кого такая же проблема, я не знаю, было ли это обходным путем, но добавление переменной к моей работе.

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