orm查询生成器获取键值对

uurity8g  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(273)

我在实体存储库中有以下代码:

$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。

eh57zj3b

eh57zj3b1#

这似乎不是querybuilder中实现的功能,但是fetchallkeyvalue是在dbal 2.11中添加到 Connection 对象
提交、使用

相关问题