我正在尝试使用doctrine 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] =>排列 ( [country] =>阿富汗 )
[1] =>排列 ( [country] =>奥兰群岛 )
[2] =>排列 ( [country] =>阿尔巴尼亚 )
必填结果:
[0] =>阿富汗
[1] =>奥兰群岛
[2] =>阿尔巴尼亚
答案 0 :(得分:0)
我不知道怎么做你自己的方式,我知道怎么做,因为我习惯了:
$conn = $this->getEntityManager()->getConnection();
$sql = "SELECT c.country FROM Country c;";
$query = $conn->prepare($sql);
$query->execute();
$result = $query->fetchAll(\PDO::FETCH_COLUMN);
结果应该是单个数组,而数组内部没有数组,因为fetch_column只返回列的值,而不是带索引的数组。
要保持索引,您必须创建一个自定义保水器:
protected function _hydrateAll()
{
return $this->_stmt->fetchAll(PDO::FETCH_COLUMN);
}
这样你就可以保持索引并同时使用FETCH_COLUMN。
我只为该功能提供代码,因为下面的链接为您提供所需的全部内容,我更改的部分是FETCH_COLUMN,这一切都应该是正确的。