From 2ab609b0f1a0e33ea4a7265ea5899a0992131c03 Mon Sep 17 00:00:00 2001 From: PierreRebeilleau Date: Mon, 3 Apr 2023 11:53:17 +0200 Subject: [PATCH] fix(metadata) : fix string being cast to int --- .../UriVariableTransformer/IntegerUriVariableTransformer.php | 2 +- .../IntegerUriVariableTransformerTest.php | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Api/UriVariableTransformer/IntegerUriVariableTransformer.php b/src/Api/UriVariableTransformer/IntegerUriVariableTransformer.php index 9c649427a50..0ba15f8652d 100644 --- a/src/Api/UriVariableTransformer/IntegerUriVariableTransformer.php +++ b/src/Api/UriVariableTransformer/IntegerUriVariableTransformer.php @@ -20,7 +20,7 @@ final class IntegerUriVariableTransformer implements UriVariableTransformerInter { public function transform(mixed $value, array $types, array $context = []): int { - return (int) $value; + return is_numeric($value) ? (int) $value : $value; } public function supportsTransformation(mixed $value, array $types, array $context = []): bool diff --git a/tests/Api/UriVariableTransformer/IntegerUriVariableTransformerTest.php b/tests/Api/UriVariableTransformer/IntegerUriVariableTransformerTest.php index 7bfcf43bbd2..8d58cd1105a 100644 --- a/tests/Api/UriVariableTransformer/IntegerUriVariableTransformerTest.php +++ b/tests/Api/UriVariableTransformer/IntegerUriVariableTransformerTest.php @@ -23,6 +23,11 @@ public function testTransform(): void $this->assertSame(2, (new IntegerUriVariableTransformer())->transform('2', ['int'])); } + public function testCastString() + { + $this->assertSame('7foo', (new IntegerUriVariableTransformer())->transform('7foo', ['int'])); + } + public function testSupportsTransformation(): void { $normalizer = new IntegerUriVariableTransformer();