Doctrine querybuilder结果

时间:2012-05-19 11:25:24

标签: symfony doctrine doctrine-orm query-builder

我正在使用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类型的对象。

我有点困惑。谢谢。

2 个答案:

答案 0 :(得分:9)

不记得我是怎么来到这篇文章的,但我甚至读过它并想了想,反正......反正..

我认为他要求获得第一个结果,如果是这样的话......查询应首先知道结果的最大大小是什么

$qb->setMaxResults(1)

然后你可以调用一个真正定义自己的方法

$single_result = $qb->getSingleResult()

所以在给定的示例中,代码看起来像

$qb->getQuery()->setMaxResults(1)->getSingleResult();

答案 1 :(得分:-1)

首先,您需要指定From子句:

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

你可以使用:getArrayResult()以数组的形式获取数据,如果你想从Object ArrayCollection获取First对象(当你使用getResult()时,你必须:

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

查看参考和exaples:http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/dql-doctrine-query-language.html