Php 使用ResultSetMappingBuilder生成的单个本机查询在备用条令实体上迭代

Php 使用ResultSetMappingBuilder生成的单个本机查询在备用条令实体上迭代,php,doctrine-orm,doctrine,Php,Doctrine Orm,Doctrine,我身上有点锈迹斑斑;但我试图从一个单一的查询中得到两个条令实体 设置如下所示: $rsm = new ResultSetMappingBuilder($this->entityManager, ResultSetMappingBuilder::COLUMN_RENAMING_INCREMENT); $rsm->addRootEntityFromClassMetadata(Foo::class, 'foo'); $rsm->addRootEntityFro

我身上有点锈迹斑斑;但我试图从一个单一的查询中得到两个条令实体

设置如下所示:

    $rsm = new ResultSetMappingBuilder($this->entityManager, ResultSetMappingBuilder::COLUMN_RENAMING_INCREMENT);
    $rsm->addRootEntityFromClassMetadata(Foo::class, 'foo');
    $rsm->addRootEntityFromClassMetadata(Bar::class, 'bar');
SELECT $selectClause 
FROM foo_table F
LEFT JOIN other_table B on F.other_id = B.other_id
我正在生成一个select子句,如下所示:

    $selectClause = $rsm->generateSelectClause([
        'foo' => 'F',
        'bar' => 'B',
    ]);
SQL的结构如下所示:

    $rsm = new ResultSetMappingBuilder($this->entityManager, ResultSetMappingBuilder::COLUMN_RENAMING_INCREMENT);
    $rsm->addRootEntityFromClassMetadata(Foo::class, 'foo');
    $rsm->addRootEntityFromClassMetadata(Bar::class, 'bar');
SELECT $selectClause 
FROM foo_table F
LEFT JOIN other_table B on F.other_id = B.other_id
当我使用以下命令执行该查询时:

foreach( $stmt->getResult() AS $row ){
  // breakpoint here
}
在$row处设置断点表示$row提供了交替的Foo和Bar对象,这使得迭代有点困难。换句话说,结果是:

loop 0: Foo
loop 1: Bar
loop 2: Foo
loop 3: Bar
...
我做错什么了吗?我会想象结果将是一个数组对象,其中Foo和Bar“在一起”

有可能达到我期望的结果吗