Doctrine orm Doctrine2按数组格式索引
我正在尝试使用原则2获取数据,以便数组结果在数组的索引中具有id,而另一列作为该索引的值Doctrine orm Doctrine2按数组格式索引,doctrine-orm,Doctrine Orm,我正在尝试使用原则2获取数据,以便数组结果在数组的索引中具有id,而另一列作为该索引的值 The format I am trying to get is : [country_id] = country 我甚至不确定这是否可能 $dql = "SELECT c.country FROM User\Entity\Country c INDEX BY c.country_id"; $dq = $em->createQuery($dql); $cou
The format I am trying to get is :
[country_id] = country
我甚至不确定这是否可能
$dql = "SELECT c.country FROM User\Entity\Country c INDEX BY c.country_id";
$dq = $em->createQuery($dql);
$countries = $dq->getResult(Query::HYDRATE_ARRAY);
$em->clear();
当前结果:
[0]=>阵列
(
[国家]=>阿富汗
)
[1] =>阵列
(
[国家]=>阿兰群岛
)
[2] =>阵列
(
[国家]=>阿尔巴尼亚
)
所需结果:
[0]=>阿富汗
[1] =>阿拉德群岛
[2] =>阿尔巴尼亚
我不知道如何按照你的方式做,我知道如何做,因为我已经习惯了:
$conn = $this->getEntityManager()->getConnection();
$sql = "SELECT c.country FROM Country c;";
$query = $conn->prepare($sql);
$query->execute();
$result = $query->fetchAll(\PDO::FETCH_COLUMN);
结果应该是一个单个数组,数组中没有数组作为列的fetch\ U列返回唯一值,而不是带有索引的数组
编辑:
要保留索引,您必须创建自定义索引或:
protected function _hydrateAll()
{
return $this->_stmt->fetchAll(PDO::FETCH_COLUMN);
}
这样,您将同时通过和使用FETCH_列保留索引
我只把函数的代码放在下面,因为下面的链接提供了您所需要的全部内容。我更改的部分是FETCH_列,所有内容都应该是正确的
也许可以创建另一个数组并用结果数组的值填充它。循环始终是一个选项。。谢谢BTW,好的,如果你没有找到一个合适的方式直接与理论,你总是可以考虑这个选择,但我需要在数组索引中的国家ID对不起,我用正确的解决方案更新答案,因为在这个情况下,索引是不可用的,基本上你需要一个自定义的水合物。