用于标量查询的Doctrine返回数组数组

时间:2016-01-22 18:56:53

标签: arrays symfony doctrine-orm

使用doctrine和查询构建器,我编写了一个SELECT MAX()查询,当这个结果传递给另一个查询构建器时,作为参数,查询工作正常。

但由于某种原因,我在另一个Repository中的其他地方使用本机SQL查询,当我使用$repo->getMaxMyThing()时,它返回一个像数组一样的数组 array(array('1' => 42))

如果我想要结果,我需要输入:$max[0]['1'](0是一个简单的数组索引,但' 1'是一个字符串关联键)。

Doctrine Bundle中是否存在任何方法来转换'它会自动变成一个简单的整数吗?

1 个答案:

答案 0 :(得分:1)

当您不希望Doctrine返回实体时,您可以使用get*ScalarResult() query methods

  
      
  • Query#getScalarResult():检索可包含重复数据的标量值的扁平/矩形结果集。纯/混合的区别不适用。
  •   
  • Query#getSingleScalarResult():从dbms返回的结果中检索单个标量值。如果结果包含多个标量值,则抛出异常。纯/混合的区别不适用。
  •   

以下是文档中的示例:

$query = $em->createQuery('SELECT COUNT(u.id) FROM Entities\User u');
$count = $query->getSingleScalarResult();

$count将是所请求的单个值(不是数组)。