From 9a4d9d5827d39b2a5c501dad45eef9191c2a6b7b Mon Sep 17 00:00:00 2001 From: Thomas Beaujean Date: Wed, 23 Apr 2025 18:08:07 +0200 Subject: [PATCH] Add FilterInInterface --- src/Interface/FilterInInterface.php | 16 +++++++++++++++ .../Generator/TopRepositoryTemplate.html.twig | 20 +++++++++++++++++++ tests/Repository/MyClassRepositoryBase.php | 20 +++++++++++++++++++ .../Service/ExpectedMyClassRepositoryBase.txt | 20 +++++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 src/Interface/FilterInInterface.php diff --git a/src/Interface/FilterInInterface.php b/src/Interface/FilterInInterface.php new file mode 100644 index 0000000..4179035 --- /dev/null +++ b/src/Interface/FilterInInterface.php @@ -0,0 +1,16 @@ +andWhere($entityName.'.'.$columnName.' IN (:'.$parameterName.')'); + $qb->setParameter($parameterName, $values); + + return $qb; + } diff --git a/tests/Repository/MyClassRepositoryBase.php b/tests/Repository/MyClassRepositoryBase.php index 73b9ef7..878f3d5 100644 --- a/tests/Repository/MyClassRepositoryBase.php +++ b/tests/Repository/MyClassRepositoryBase.php @@ -331,6 +331,26 @@ public static function filterBy( return $qb; } + public static function filterIn( + QueryBuilder $qb, + string $columnName, + string $operator, + array $values, + ?string $entityName = null, + ): QueryBuilder { + if (null === $entityName) { + $entityName = self::NAME; + } + + $index = static::getParameterIndex(); + $parameterName = $columnName.$index; + + $qb->andWhere($entityName.'.'.$columnName.' IN (:'.$parameterName.')'); + $qb->setParameter($parameterName, $values); + + return $qb; + } + public static function filterById( QueryBuilder $qb, $value, diff --git a/tests/Service/ExpectedMyClassRepositoryBase.txt b/tests/Service/ExpectedMyClassRepositoryBase.txt index 73b9ef7..878f3d5 100644 --- a/tests/Service/ExpectedMyClassRepositoryBase.txt +++ b/tests/Service/ExpectedMyClassRepositoryBase.txt @@ -331,6 +331,26 @@ class MyClassRepositoryBase extends \Doctrine\Bundle\DoctrineBundle\Repository\S return $qb; } + public static function filterIn( + QueryBuilder $qb, + string $columnName, + string $operator, + array $values, + ?string $entityName = null, + ): QueryBuilder { + if (null === $entityName) { + $entityName = self::NAME; + } + + $index = static::getParameterIndex(); + $parameterName = $columnName.$index; + + $qb->andWhere($entityName.'.'.$columnName.' IN (:'.$parameterName.')'); + $qb->setParameter($parameterName, $values); + + return $qb; + } + public static function filterById( QueryBuilder $qb, $value,