Я работаю над Symfony4 с доктриной.
В моем хранилище я получаю информацию, но я не могу сделать заказ с переменным параметром (расстояние между пользователем и многими другими пользователями)
public function findByThemeAndDistance($theme,$distance,$user){
$latUser=$user->getAddress()->getLnt();
$lngUser = $user->getAddress()->getLgt();
return $this->createQueryBuilder('a')
// ->select('a as activity,dist(distance) as distance' )
->join('a.author','u')
->join('u.address','add')
->andWhere('a.theme=:val')
->andWhere( '(6378 * acos(cos(radians( add.lnt)) * cos(radians(' . $latUser . ')) * cos(radians(' . $lngUser . ') - radians(add.lgt)) + sin(radians(add.lnt )) * sin(radians(' . $latUser . '))))< :distance')
->setParameter('distance', $distance)
->setParameter('val',$theme)
->orderBy('distance','ASC')
->getQuery()
->getResult()
;
}
Я пытаюсь получить результат, упорядоченный по расстоянию, но получаю следующее:
Ошибка: ожидаемая доктрина \ ORM \ Query \ Lexer :: T_IDENTIFIER, получила '1' и
когда я стираю alais, я получаю это: [Семантическая ошибка] строка 0, столбец
287 возле «расстояния ASC»: ошибка: «расстояние» не определено.