4

私はSymfony2とDoctrine2を使用してアプリケーションを開発しています。DoctrineのQueryBuilderも使用しています。私はこのクエリを持っています:

public function getInterpDesberdinak($MarkId)
    {
          $qb = $this->createQueryBuilder('c')
              ->select('DISTINCT c.Gordailua, c')
              ->where('c.MarkIdGordailua = :MarkId')
              ->setParameter('MarkId', $MarkId);
          $Emaitza = $qb->getQuery()->getResult();
          return $Emaitza;
    }       

$Emaitzaでどのような結果が得られるかを知りたいと思います。それは次のようなものでしょうか:

$ Emaitza [0]['Gordailua']=最初に選択されたGordailua値。

次に$Emaitza[0][?????]=最初のc型オブジェクト。

ちょっと戸惑いました。ありがとうございます。

4

2 に答える 2

10

どうやってこの投稿にたどり着いたのか思い出せませんが、読んで考えても、とにかく..

彼は最初の結果を取得するように求めていると思います。そうであれば、クエリは最初に結果の最大サイズを知る必要があります。

$qb->setMaxResults(1)

次に、実際に自分自身を定義するメソッドを呼び出すことができます

$single_result = $qb->getSingleResult()

したがって、与えられた例では、コードは次のようになります。

$qb->getQuery()->setMaxResults(1)->getSingleResult();
于 2014-10-22T19:32:06.357 に答える
-1

まず、From句を指定する必要があります。

$qb->from('YourBundle\Entity\ParentOfGordailua as pg');

getArrayResult()を使用して、データを配列としてフェッチできます。ObjectArrayCollectionからFirstオブジェクトを取得する場合(getResult()を使用している場合は、次のことを行う必要があります。

$Gordailua = $Emaitza->first()->getGordailua();

リファレンスと例を見てください: http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/dql-doctrine-query-language.html

于 2012-05-20T10:17:45.577 に答える