Индекс Symfony2 объекта, отсортированного по DQL

Привет, я сделал простой запрос для механизма ранжирования с помощью построителя запросов.

        $result = $qb
->select('u')
->where('u.status = 1')
->from('PGMainBundle:User', 'u')
->groupBy('u.id')
->addSelect('COUNT(c.id) as HIDDEN nChallenges')
->leftJoin('u.challenges', 'c', 'WITH', 'c.closed = 1' )
->add('orderBy','u.points DESC, nChallenges DESC')
->orderBy('u.points', 'DESC')
->addOrderBy('nChallenges', 'DESC')
->setFirstResult($offset*50)
->setMaxResults(50)
->getQuery()
->getResult();

Теперь, когда мой механизм ранжирования работает нормально, я хотел бы проверить, что есть у loop.index у пользователя с $ id.

Сказал это, я не хочу использовать цикл foreach для результата, чтобы сделать это.

Есть ли более оптимальный способ просто вернуть «позицию» в рейтинге?

Возможно, с помощью построителя запросов?

1

Решение

Результат должен быть коллекция массивов таким образом, вы можете получить индекс данного элемента следующим образом:

$result->indexOf($yourelement)

Иначе, если ключи не в порядке, но являются идентификаторами сущностей:

  $keys = $result->getKeys();
$id = $yourElement->getId();
$position = array_search($id, $keys);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]