Symfony 2 Doctrine найти по упорядоченному массиву id

Я ищу способ использовать Doctrine в Symfony 2 для поиска элементов с помощью упорядоченного массива id.

У меня есть объект карты с идентификатором (первичный ключ) и названием.

У меня есть объект ListCards с id (primary key) и listCards (массив идентификаторов: ["16", "2", "84"])

Сначала я забираю список, а затем мне нужно найти карты с этими идентификаторами в этом порядке.

Я пробую что-то вроде:

$idsArray = ["16", "2", "84"];
$cardRepository->findby($idsArray);

, но Doctrine выберите мои карты в порядке ASC.

ORDER BY FIEDS Метод sql, похоже, не поддерживается доктриной.

Есть ли какое-то простое решение для такого рода сортировки?

Спасибо (и извините за мой плохой английский).

Ответ 1

Вы можете использовать его как:

$cardRepository->findBy( array('id' => $idsArray), array('id' => 'DESC') );

Обратитесь также к официальной документации доктрины для получения более подробной информации о том, как использовать упорядочение, ограничение и смещение в качестве параметров со второго по четвертый в методе findBy.

Ответ 2

Вы можете создать вспомогательную таблицу, в которой хранятся упорядоченные элементы группы, имеющие следующие данные: (group_id, card_id, order)

Вы выполняете поиск group _id, заказываете order и читаете card_id.