bug #37097 DateTime validator support for trailing data (stefankleff)

This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

DateTime validator support for trailing data

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #37094
| License       | MIT

Commits
-------

27f6e28f5b DateTime validator support for trailing data
This commit is contained in:
Fabien Potencier 2020-09-09 07:34:53 +02:00
commit 1e52146339
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();
}
}