猿问

如何在 Symfony 默认查询构建器中添加一列

我是 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对象内部。


那么,有没有办法使用查询构建器来实现这一目标?你认为我做错了什么吗?


SMILET
浏览 142回答 1
1回答
随时随地看视频慕课网APP
我要回答