diff --git a/src/Symfony/Component/Form/Extension/Core/Type/DateIntervalType.php b/src/Symfony/Component/Form/Extension/Core/Type/DateIntervalType.php index fb2b7d7ff3ec8..946d8a3159754 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/DateIntervalType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/DateIntervalType.php @@ -107,9 +107,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) } } } - $invertOptions = array( - 'error_bubbling' => true, - ); // Append generic carry-along options foreach (array('required', 'translation_domain') as $passOpt) { foreach ($this->timeParts as $part) { @@ -117,9 +114,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) $childOptions[$part][$passOpt] = $options[$passOpt]; } } - if ($options['with_invert']) { - $invertOptions[$passOpt] = $options[$passOpt]; - } } foreach ($this->timeParts as $part) { if ($options['with_'.$part]) { @@ -135,7 +129,11 @@ public function buildForm(FormBuilderInterface $builder, array $options) } } if ($options['with_invert']) { - $builder->add('invert', 'Symfony\Component\Form\Extension\Core\Type\CheckboxType', $invertOptions); + $builder->add('invert', 'Symfony\Component\Form\Extension\Core\Type\CheckboxType', array( + 'error_bubbling' => true, + 'required' => false, + 'translation_domain' => $options['translation_domain'], + )); } $builder->addViewTransformer(new DateIntervalToArrayTransformer($parts, 'text' === $options['widget'])); } diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateIntervalTypeTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateIntervalTypeTest.php index e40c0949f6961..2adf3ba5429ae 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateIntervalTypeTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/Type/DateIntervalTypeTest.php @@ -364,4 +364,18 @@ public function testDateTypeChoiceErrorsBubbleUp() $this->assertSame(array(), iterator_to_array($form['years']->getErrors())); $this->assertSame(array($error), iterator_to_array($form->getErrors())); } + + public function testInvertDoesNotInheritRequiredOption() + { + $form = $this->factory->create( + 'Symfony\Component\Form\Extension\Core\Type\DateIntervalType', + null, + array( + 'input' => 'dateinterval', + 'with_invert' => true, + 'required' => true, + ) + ); + $this->assertFalse($form->get('invert')->getConfig()->getOption('required')); + } }