From feae12dce75dfdb97657068d02645f7bea64cf57 Mon Sep 17 00:00:00 2001 From: Maksim Date: Sat, 6 Feb 2021 12:09:53 +0300 Subject: [PATCH] List support only works with Connection::execute() (#21) --- .../Doctrine/Persistence/Reader/Query.php | 2 +- .../Doctrine/Persistence/Reader/ReaderTest.php | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/Provider/Doctrine/Persistence/Reader/Query.php b/src/Provider/Doctrine/Persistence/Reader/Query.php index 5c6f39e7..3080d35d 100644 --- a/src/Provider/Doctrine/Persistence/Reader/Query.php +++ b/src/Provider/Doctrine/Persistence/Reader/Query.php @@ -235,7 +235,7 @@ private function buildWhere(QueryBuilder $queryBuilder): QueryBuilder } else { $queryBuilder ->andWhere(sprintf('%s IN (:%s)', $filter, $filter)) - ->setParameter($filter, $values) + ->setParameter($filter, $values, Connection::PARAM_STR_ARRAY) ; } } diff --git a/tests/Provider/Doctrine/Persistence/Reader/ReaderTest.php b/tests/Provider/Doctrine/Persistence/Reader/ReaderTest.php index c35fc456..283ffc79 100644 --- a/tests/Provider/Doctrine/Persistence/Reader/ReaderTest.php +++ b/tests/Provider/Doctrine/Persistence/Reader/ReaderTest.php @@ -181,6 +181,21 @@ public function testGetAuditsPager(): void self::assertSame(3, $pager['numPages'], 'Pager has 3 pages.'); } + public function testMultipleFilters(): void + { + $reader = $this->createReader(); + + $query = $reader->createQuery(Author::class); + $audits = $query->execute(); + self::assertCount(5, $audits); + + $query = $reader->createQuery(Author::class); + $query->addFilter('object_id', 1); + $query->addFilter('object_id', 2); + $audits = $query->execute(); + self::assertCount(3, $audits); + } + /** * @depends testGetAudits */