From 16a816a1639d0bdd305d62a59740ee415b700597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juli=C3=A1n=20Guti=C3=A9rrez?= Date: Wed, 22 Mar 2017 23:36:06 +0100 Subject: [PATCH] discover dql alias --- src/SpecificationRepositoryTrait.php | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/SpecificationRepositoryTrait.php b/src/SpecificationRepositoryTrait.php index 2f2c573..1724527 100644 --- a/src/SpecificationRepositoryTrait.php +++ b/src/SpecificationRepositoryTrait.php @@ -15,7 +15,7 @@ trait SpecificationRepositoryTrait /** * @var string */ - protected $dqlAlias = 'e'; + protected $dqlAlias; /** * @see SpecificationAwareInterface::match() @@ -36,7 +36,7 @@ public function match(SpecificationInterface $specification, ModifierInterface $ )); } - $queryBuilder = $this->createQueryBuilder($this->dqlAlias); + $queryBuilder = $this->createQueryBuilder($this->getDqlAlias()); $this->modifyQueryBuilder($queryBuilder, $specification); return $this->modifyQuery($queryBuilder, $modifier); @@ -53,7 +53,7 @@ public function match(SpecificationInterface $specification, ModifierInterface $ */ private function modifyQueryBuilder(QueryBuilder $queryBuilder, SpecificationInterface $specification) { - $condition = $specification->modify($queryBuilder, $this->dqlAlias); + $condition = $specification->modify($queryBuilder, $this->getDqlAlias()); if (empty($condition)) { return; @@ -80,4 +80,18 @@ private function modifyQuery(QueryBuilder $queryBuilder, ModifierInterface $modi return $query; } + + /** + * Get DQL entity alias. + * + * @return string + */ + protected function getDqlAlias() + { + if ($this->dqlAlias === null) { + $this->dqlAlias = strtoupper($this->getEntityName()[0]); + } + + return $this->dqlAlias; + } }