Skip to content

Commit ff730ef

Browse files
committed
Merge pull request #273 from csarrazi/doctrine/eager-fetch-mode
Added support for eager-loading associations in collections
2 parents d11c87c + ef77980 commit ff730ef

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

Doctrine/Orm/DataProvider.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace Dunglas\ApiBundle\Doctrine\Orm;
1313

1414
use Doctrine\Common\Persistence\ManagerRegistry;
15+
use Doctrine\ORM\Mapping\ClassMetadataInfo;
1516
use Doctrine\ORM\Tools\Pagination\Paginator as DoctrineOrmPaginator;
1617
use Doctrine\ORM\QueryBuilder;
1718
use Dunglas\ApiBundle\Doctrine\Orm\Filter\FilterInterface;
@@ -122,6 +123,15 @@ public function getCollection(ResourceInterface $resource, Request $request)
122123
$classMetaData = $manager->getClassMetadata($entityClass);
123124
$identifiers = $classMetaData->getIdentifier();
124125

126+
foreach ($classMetaData->getAssociationNames() as $i => $association) {
127+
$mapping = $classMetaData->associationMappings[$association];
128+
129+
if (ClassMetadataInfo::FETCH_EAGER === $mapping['fetch']) {
130+
$queryBuilder->join('o.'.$association, 'a'.$i);
131+
$queryBuilder->addSelect('a'.$i);
132+
}
133+
}
134+
125135
if (null !== $this->order && 1 === count($identifiers)) {
126136
$identifier = $identifiers[0];
127137
$queryBuilder->addOrderBy('o.'.$identifier, $this->order);

0 commit comments

Comments
 (0)