我在实体存储库中有以下代码:
$rows = $this->createQueryBuilder('t')
->select(['t.idColumn', 't.valueColumn'])
->where('t.foo = :foo')
->orderBy('t.idColumn', 'ASC')
->setParameter('foo', $foo)
->getQuery()
->getArrayResult(); // This returns [[idColumn => ..., valueColumn => ...], ...]
$data = [];
foreach ($rows as $row) {
$data[$row['idColumn']] = abs($row['valueColumn']); // Remapping to [id => value]
}
return $data;
有没有办法摆脱自定义的本地重新Map?我知道您可以使用indexby参数,但这只能得到正确的键,而不能得到值。
p、 我知道array_column(),但这是我每次都要做的额外步骤,更不用说它对实体拥有的方法不起作用。
p、 请注意,这不是使用symfony。
1条答案
按热度按时间eh57zj3b1#
这似乎不是querybuilder中实现的功能,但是fetchallkeyvalue是在dbal 2.11中添加到
Connection
对象提交、使用