Skip to content

Commit cf3c870

Browse files
committed
Add allowNumericString parameter
1 parent 3dfd449 commit cf3c870

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

Diff for: src/Denormalizer/FloatDenormalizer.php

+5
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public function denormalize(
2323
bool $isNullable = false,
2424
float $minimum = null,
2525
float $maximum = null,
26+
bool $allowNumericString = false
2627
): ?float {
2728
if (null !== $minimum && null !== $maximum && $minimum > $maximum) {
2829
throw new LogicException('Minimum constraint can not be bigger than maximum');
@@ -34,6 +35,10 @@ public function denormalize(
3435

3536
$violations = new ConstraintViolationCollection();
3637

38+
if ($allowNumericString && is_string($data) && is_numeric($data)) {
39+
$data = (float) $data;
40+
}
41+
3742
if (!\is_int($data) && !\is_float($data)) {
3843
$violations[] = WrongPropertyType::guessGivenType(
3944
$pointer,

Diff for: src/Denormalizer/IntegerDenormalizer.php

+5
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public function denormalize(
2323
bool $isNullable = false,
2424
int $minimum = null,
2525
int $maximum = null,
26+
bool $allowNumericString = false
2627
): ?int {
2728
if (null !== $minimum && null !== $maximum && $minimum > $maximum) {
2829
throw new LogicException('Minimum constraint can not be bigger than maximum');
@@ -34,6 +35,10 @@ public function denormalize(
3435

3536
$violations = new ConstraintViolationCollection();
3637

38+
if ($allowNumericString && is_string($data) && is_numeric($data)) {
39+
$data = (int) $data;
40+
}
41+
3742
if (!\is_int($data)) {
3843
$violations[] = WrongPropertyType::guessGivenType(
3944
$pointer,

0 commit comments

Comments
 (0)