У меня есть 3 лица в Symfony. Candidate
, School
, Game
кандидат назначается в одну школу и может начинать игры. Игровая сущность содержит счет игры. Пока все хорошо, вот самая сложная часть:
Я должен показать кандидатам, какое звание они имеют в настоящее время, а также 10 лучших игроков.
Я знаю, я мог бы использовать собственный запрос для MySQL и сделать что-то вроде предложенного здесь: https://stackoverflow.com/a/3333697/2989952
Но затем, чтобы получить ранг кандидата, мне нужно будет загрузить все записи из БД и выполнить их через PHP (или с Doctrines). Criteria
). Есть ли лучший способ получить звание? Я также мог бы добавить точку-столбец или что-то еще в объекте-кандидате и обновлять его после каждой игры, а затем просто сортировать по этому столбцу, но мне все равно пришлось бы повторять все записи снова в PHP.
Спасибо за вашу помощь.
Для второй части «Как оценить 10 лучших игроков» я бы использовал индекс из цикла с этим запросом.
$gameRepository->findBy([],['score'=>'desc'],10);
Для первой части.это выглядит многообещающе и может быть легко переведено в DQL.
Других решений пока нет …