diff --git a/src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php b/src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php index f260c472ddffc..2a977789d8e9a 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php @@ -44,6 +44,14 @@ public function buildForm(FormBuilder $builder, array $options) $builder->appendClientTransformer(new DateTimeToStringTransformer($options['data_timezone'], $options['user_timezone'], $format)); } else { // Only pass a subset of the options to children + + // Check if an invalid date message is defined + if(isset($options['date_invalid_message'])) { + $options['invalid_message'] = $options['date_invalid_message']; + } + if(isset($options['date_invalid_message_parameters'])) { + $options['invalid_message_parameters'] = $options['date_invalid_message_parameters']; + } $dateOptions = array_intersect_key($options, array_flip(array( 'years', 'months', @@ -53,6 +61,14 @@ public function buildForm(FormBuilder $builder, array $options) 'invalid_message', 'invalid_message_parameters' ))); + + // Check if an invalid time message is defined + if(isset($options['time_invalid_message'])) { + $options['invalid_message'] = $options['time_invalid_message']; + } + if(isset($options['time_invalid_message_parameters'])) { + $options['invalid_message_parameters'] = $options['time_invalid_message_parameters']; + } $timeOptions = array_intersect_key($options, array_flip(array( 'hours', 'minutes', @@ -151,6 +167,10 @@ public function getDefaultOptions(array $options) 'widget' => null, // This will overwrite "empty_value" child options 'empty_value' => null, + 'date_invalid_message' => null, + 'time_invalid_message' => null, + 'date_invalid_message_parameters' => array(), + 'time_invalid_message_parameters' => array(), ); } diff --git a/tests/Symfony/Tests/Component/Form/Extension/Core/Type/DateTimeTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/DateTimeTypeTest.php index cba6cccd379b8..27a3f83f83ded 100644 --- a/tests/Symfony/Tests/Component/Form/Extension/Core/Type/DateTimeTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/DateTimeTypeTest.php @@ -234,4 +234,28 @@ public function testSubmit_invalidDateTime() $this->assertEquals(array(new FormError('Customized invalid message', array())), $form['date']->getErrors()); $this->assertEquals(array(new FormError('Customized invalid message', array())), $form['time']->getErrors()); } + + public function testSubmit_invalidDateTime_differentMessages() + { + $form = $this->factory->create('datetime', null, array( + 'date_invalid_message' => 'Customized invalid date message', + 'time_invalid_message' => 'Customized invalid time message', + )); + + $form->bind(array( + 'date' => array( + 'day' => '31', + 'month' => '9', + 'year' => '2010', + ), + 'time' => array( + 'hour' => '25', + 'minute' => '4', + ), + )); + + $this->assertFalse($form->isValid()); + $this->assertEquals(array(new FormError('Customized invalid date message', array())), $form['date']->getErrors()); + $this->assertEquals(array(new FormError('Customized invalid time message', array())), $form['time']->getErrors()); + } } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy