Хорошо, вот мое решение:
Я нашел ответ на этот вопрос после нескольких экспериментов и совместной работы.
Я избавился от выбора и просто возвратил упорядоченный список.результатов;
$results = self::getInstance()->createQuery('r')
->orderBy('r.distance')
->execute();
Затем я скопировал этот результат в массив и использовал array_search (), чтобы найти ключ результата в массиве (к счастью, здесь я возвращаю пользовательские данные, и я знаю, что пользователь Iв массиве)
$index = array_search($user->toArray(), $results->toArray());
Затем я могу вернуть $ index + 1 , чтобы дать мне позицию пользователя в таблице лидеров.
Возможно, естьлучший способ сделать это на стороне базы данных, но я не могу на всю жизнь выяснить, как.
Если у кого-то есть лучшее решение, пожалуйста, поделитесь.