我是 Symfony 的新手,我维护的现有应用程序有问题。
在其中一个存储库中,有一种方法可以选择失败的交易和相关的付款。
现在,他们要求我允许根据失败交易的总数过滤交易,这可能是1失败的交易或2.
我在查询构建器中尝试做的事情是这样的:
$this
->createQueryBuilder('t')
->join('t.payment', 'p')
->leftJoin( Transaction::class, 'tr', Query\Exprt\Join::WITH, 'p.id = tr.payment')
->groupBy('tr.id');
在那之前,一切都很好。查询正常执行,可以看到我需要的交易。
现在的问题是我不能使用以下语句:
$this
->createQueryBuilder('t')
// This is the column I need to insert
->addSelect('COUNT(tr.id) AS TotalRecords')
->join('t.payment', 'p')
->leftJoin( Transaction::class, 'tr', Query\Exprt\Join::WITH, 'p.id = tr.payment')
->groupBy('tr.id');
因为输出看起来像这样:
array:1 [▼
0 => array:2 [▼
0 => Transaction {#1221 ▶}
"TotalRecords" => "1" <- This is the total transactions number I need
]
]
而不是上面的输出,我需要TotalRecords在Transaction对象内部。
那么,有没有办法使用查询构建器来实现这一目标?你认为我做错了什么吗?