ここに私のマッピングがあります:
$rsm = new ResultSetMapping;
$rsm->addEntityResult('OOHMediaBundle:OfferItem', 'i');
$rsm->addFieldResult('i', 'reserved_at', 'reservedAt');
$rsm->addJoinedEntityResult('OOHMediaBundle:Offer', 'o', 'i', 'offer');
$rsm->addFieldResult('o', 'o_id', 'id');
$rsm->addFieldResult('o', 'continue_from', 'continueFrom');
$rsm->addFieldResult('o', 'continue_to', 'continueTo');
これが私のネイティブクエリです:
$qb = $this->registry->getEntityManager()->createNativeQuery(
'SELECT i.reserved_at, o.id AS o_id, o.continue_from, o.continue_to
FROM offer_item AS i
LEFT JOIN offers AS o ON i.offer_id = o.id
WHERE i.reserved_at IS NOT NULL
;',
$rsm
);
上記の SQL を mysql クライアントにコピーすると、43レコードが生成されます。
実行すると、 1 つのレコード$qb->getArrayResult();
のみが返されます。
$qb->getResult();
例外を返すように実行すると:
[Symfony\Component\Debug\Exception\ContextErrorException]
Notice: Undefined index: offer_id
他の42のレコードはどこで消えましたか?