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“在一起”
有可能达到我期望的结果吗