1

私はsymfony 2.0.10を使用してサイトを構築しており、コントローラーで次のコードを使用してデータベーステーブルをクエリしています:

$query = $this->getDoctrine()->getRepository('MyBundle:MyTable')->createQueryBuilder('x')->getQuery();

$data = $query->getResult();

連続した番号 (0 から N) ではなく、指定されたフィールドによって配列内でインデックス付けされた結果を取得します。CreateQuery メソッドでINDEX BYを指定すると、これを実行できることがわかりましたが、クエリ ビルダーを使用してこれを行うにはどうすればよいですか? この質問では回答が返されますが、ユーザーはリポジトリを使用していません

編集1

$query = $this->getDoctrine()->getEntityManager()->createQueryBuilder()->select('x')->from('MyBundle:MyTable', 'x', 'x.myIndexField')->getQuery();
4

1 に答える 1

1

私はこれを試していませんが、メソッドjoinには署名があると確信しています。

public function join($join, $alias, $conditionType = null, $condition = null, $indexBy = null)

最後のパラメータは$indexByですので、それがあなたが探しているものだと思います;)

于 2012-02-09T22:40:16.410 に答える