使用doctrine和查询构建器,我编写了一个SELECT MAX()
查询,当这个结果传递给另一个查询构建器时,作为参数,查询工作正常。
但由于某种原因,我在另一个Repository中的其他地方使用本机SQL查询,当我使用$repo->getMaxMyThing()
时,它返回一个像数组一样的数组
array(array('1' => 42))
。
如果我想要结果,我需要输入:$max[0]['1']
(0是一个简单的数组索引,但' 1'是一个字符串关联键)。
Doctrine Bundle中是否存在任何方法来转换'它会自动变成一个简单的整数吗?
答案 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
将是所请求的单个值(不是数组)。