1

こんにちは、私はこのdqlクエリを持っています

createQuery("SELECT b.name FROM Album\Entity\Brand b")->getArrayResult();

これを返します

array
 0 => 
  array
   'id' => int 11
   'name' => string 'aaas' (length=4)

結果をこのようなものにするにはどうすればよいですか

array(11=>'asss')

私はのような配列を意味します

array(id=>name,id=>name,...)

この問題の dql または getArrayResult メソッドに特定のオプションはありますか?

4

2 に答える 2

4

昨夜、この問題に遭遇しました。あなたがやりたいことは不可能です。とにかく完全ではありません。

名前だけではなく、エンティティ オブジェクト全体を取得する場合は、次のようなものを使用できます。

createQuery("SELECT b FROM Album\Entity\Brand b INDEX BY b.id")->getArrayResult();

...そして結果として、次のものが得られます。

Array(
    [id] => object,
    ....
);

ただし、次の場合:

createQuery("SELECT b.name FROM Album\Entity\Brand b INDEX BY b.id")->getArrayResult();

...まあ、INDEX BY は無視されます。理由はよくわかりません。

この男は問題を解決しようですが、彼は Doctrine 2.1 を使用していますが、私は 2.0 を使用しています。どのバージョンを使用しましたか?

于 2012-09-16T17:56:55.460 に答える