我正在进行此查询
public function getRecommendedVendors($user)
{
$q = $this->em->createQuery(
"
select cat.id
from Zgh\FEBundle\Entity\Category cat
inner join cat.users u
where u = :user
"
);
$q->setParameters(["user" => $user]);
var_dump($q->execute());
die;
return $q->execute();
}
执行var_dump()
返回:
array (size=2)
0 =>
array (size=1)
'id' => string '1' (length=1)
1 =>
array (size=1)
'id' => string '10' (length=2)
我希望它返回,因为我使用IN
语句中的结果:
array (size=2)
0 =>
'id' => string '1' (length=1)
1 =>
'id' => string '10' (length=2)
答案 0 :(得分:0)
您遇到的是默认查询行为:第一个数组“级别”是行,第二个“级别”是列。当然,你只有一列,所以看起来有点奇怪。
而不是execute()
,您应该使用getScalarResult()
。要了解有关详情,请阅读http://docs.doctrine-project.org/en/2.1/reference/dql-doctrine-query-language.html#query-result-formats