web-dev-qa-db-fra.com

Symfony 2 Doctrine recherche par tableau ordonné d'id

Je cherche un moyen d'utiliser Doctrine dans Symfony 2 pour rechercher des éléments à l'aide d'un tableau ordonné d'ID.

J'ai une entité Carte avec id (clé primaire) et titre.

J'ai une entité ListCards avec id (clé primaire) et un listCards (un tableau d'identifiants codés: ["16", "2", "84"])

Je récupère d'abord la liste, puis je dois trouver des cartes avec ces identifiants dans cet ordre.

J'essaie quelque chose comme:

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

maisDoctrine récupérer mes cartes dans l'ordre ASC.

ORDER BY FIEDS La méthode sql ne semble pas être supportée par la doctrine.

Existe-t-il une solution simple pour ce type de tri?

Merci (et désolé pour mon mauvais anglais).

21
Benjamin

Vous pouvez l'utiliser comme:

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

Vérifiez également la documentation officielle doctrine pour plus de détails sur l'utilisation de l'ordre, de la limite et du décalage comme deuxième à quatrième paramètres dans la méthode findBy.

28
Max Lipsky

Vous pouvez créer une table d'aide, dans laquelle vous stockez les éléments de groupe ordonnés, avec les données suivantes: (group_id, card_id, order)

Vous recherchez par group_ id, triez par order et lisez le card_id.

0
Lajos Arpad