我正在使用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类型的对象。
我有点困惑。谢谢。
答案 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