diff --git a/Tests/Twig/DoctrineExtensionTest.php b/Tests/Twig/DoctrineExtensionTest.php index 3d8f739aa..1dc59112a 100644 --- a/Tests/Twig/DoctrineExtensionTest.php +++ b/Tests/Twig/DoctrineExtensionTest.php @@ -56,6 +56,18 @@ public function testReplaceQueryParametersWithNamedIndex() : void $this->assertEquals('a=1 OR b=2', $result); } + public function testReplaceQueryParametersWithEmptyArray() : void + { + $extension = new DoctrineExtension(); + $query = 'IN (?)'; + $parameters = [ + [], + ]; + + $result = $extension->replaceQueryParameters($query, $parameters); + $this->assertEquals('IN (NULL)', $result); + } + public function testEscapeBinaryParameter() : void { $binaryString = pack('H*', '9d40b8c1417f42d099af4782ec4b20b6'); @@ -69,7 +81,7 @@ public function testEscapeStringParameter() : void public function testEscapeArrayParameter() : void { - $this->assertEquals("1, NULL, 'test', foo", DoctrineExtension::escapeFunction([1, null, 'test', new DummyClass('foo')])); + $this->assertEquals("1, NULL, 'test', foo, NULL", DoctrineExtension::escapeFunction([1, null, 'test', new DummyClass('foo'), []])); } public function testEscapeObjectParameter() : void diff --git a/Twig/DoctrineExtension.php b/Twig/DoctrineExtension.php index 93c82b62e..eca8547e6 100644 --- a/Twig/DoctrineExtension.php +++ b/Twig/DoctrineExtension.php @@ -98,7 +98,7 @@ public static function escapeFunction($parameter) $value = static::escapeFunction($value); } - $result = implode(', ', $result); + $result = implode(', ', $result) ?: 'NULL'; break; case is_object($result):