Skip to content

Commit f9aa676

Browse files
Nick Stemerdinkfabpot
authored andcommitted
Fixed bug that incorrectly causes the "required" attribute to be omitted from select even though it contains the "multiple" attribute
1 parent bdddf3a commit f9aa676

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767

6868
{% block choice_widget_collapsed %}
6969
{% spaceless %}
70-
{% if required and empty_value is none and not empty_value_in_choices %}
70+
{% if required and empty_value is none and not empty_value_in_choices and not multiple %}
7171
{% set required = false %}
7272
{% endif %}
7373
<select {{ block('widget_attributes') }}{% if multiple %} multiple="multiple"{% endif %}>

src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/choice_widget_collapsed.html.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
<select
2+
<?php if ($required && $empty_value === null && $empty_value_in_choices === false && $multiple === false):
3+
$required = false;
4+
endif; ?>
25
<?php echo $view['form']->block($form, 'widget_attributes', array(
3-
'required' => $required && (null !== $empty_value || $empty_value_in_choices)
6+
'required' => $required
47
)) ?>
58
<?php if ($multiple): ?> multiple="multiple"<?php endif ?>
69
>

src/Symfony/Component/Form/Tests/AbstractLayoutTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,13 +636,15 @@ public function testMultipleChoice()
636636
{
637637
$form = $this->factory->createNamed('name', 'choice', array('&a'), array(
638638
'choices' => array('&a' => 'Choice&A', '&b' => 'Choice&B'),
639+
'required' => true,
639640
'multiple' => true,
640641
'expanded' => false,
641642
));
642643

643644
$this->assertWidgetMatchesXpath($form->createView(), array(),
644645
'/select
645646
[@name="name[]"]
647+
[@required="required"]
646648
[@multiple="multiple"]
647649
[
648650
./option[@value="&a"][@selected="selected"][.="[trans]Choice&A[/trans]"]

0 commit comments

Comments
 (0)