DateTime validator support for trailing data

This commit is contained in:
Stefan Kleff 2020-06-04 13:47:59 +02:00 committed by Fabien Potencier
parent 400ab7c59b
commit 27f6e28f5b
2 changed files with 14 additions and 0 deletions

View File

@ -57,6 +57,12 @@ class DateTimeValidator extends DateValidator
return;
}
if('+' === substr($constraint->format, -1)) {
$errors['warnings'] = array_filter($errors['warnings'], function($warning) {
return 'Trailing data' !== $warning;
});
}
foreach ($errors['warnings'] as $warning) {
if ('The parsed date was invalid' === $warning) {
$this->context->buildViolation($constraint->message)

View File

@ -128,4 +128,12 @@ class DateTimeValidatorTest extends ConstraintValidatorTestCase
['Y-m-d H:i:s', '2010-01-01 00:00:60', DateTime::INVALID_TIME_ERROR],
];
}
public function testDateTimeWithTrailingData()
{
$this->validator->validate('1995-05-10 00:00:00', new DateTime([
'format' => 'Y-m-d+',
]));
$this->assertNoViolation();
}
}