Doctrine 2 DQL + getRow as array

时间:2014-02-17 11:27:02

标签: php arrays symfony doctrine-orm doctrine

我有一个非常简单的查询:

$query = $this->em->createQuery('SELECT u FROM UserBundle:User u WHERE u.username = ?1');
$query->setParameter(1, $username);

现在我将结果作为数组取正常:

$data = $query->getArrayResult();
$user = $data[0];

有没有办法在不执行$ data [0]步骤的情况下直接将一行作为数组?

THX求助:)

2 个答案:

答案 0 :(得分:0)

根据documentation

  

Query#getSingleResult():检索单个对象。如果结果包含多个   一个或没有对象,抛出异常。纯/混合的区别不适用。

     

Query#getSingleScalarResult():从中检索单个标量值   dbms返回的结果。如果结果包含多个   单标量值,抛出异常。纯/混合   区别不适用。

答案 1 :(得分:0)

您可以使用getSingleResult()而不是getArrayResult()。它在学说文档的这一章中有记载:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/query-builder.html#executing-a-query