Doctrine orm Doctrine2按数组格式索引

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

我正在尝试使用原则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);
        $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对不起,我用正确的解决方案更新答案,因为在这个情况下,索引是不可用的,基本上你需要一个自定义的水合物。