web-dev-qa-db-ja.com

Symfony 2 Doctrine idの順序付き配列で検索

Symfony 2Doctrineを使用して、idの順序付き配列を使用してアイテムを検索する方法を探しています。

ID(主キー)とタイトルを持つカードエンティティがあります。

ID(主キー)とlistCards(エンコードされたIDの配列:["16", "2", "84"])を持つListCardsエンティティがあります

最初にリストを取得してから、その順序でそれらのIDを持つカードを見つける必要があります。

私は次のようなものを試します:

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

ただしDoctrineASCの順番でカードを取得します。

ORDER BY FIEDS sqlメソッドは、ドクトリンでサポートされていないようです。

そのようなソートのための簡単な解決策はありますか?

ありがとう(そして私の悪い英語を申し訳なく思う)。

21
Benjamin

次のように使用できます。

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

findByメソッドの2番目から4番目のパラメーターとして順序、制限、オフセットを使用する方法の詳細については、 公式doctrineドキュメント も確認してください。

28
Max Lipsky

次のデータを持つ、順序付けされたグループ要素を格納するヘルパーテーブルを作成できます。(group_id, card_id, order)

group_ idで検索し、orderで注文し、card_idを読みます。

0
Lajos Arpad