// one SQL query is sufficient.
$choiceListView =
$this->
createChoiceListView($choiceList,
$options);
$builder->
setAttribute('choice_list_view',
$choiceListView);
// Check if the choices already contain the empty value
// Only add the placeholder option if this is not the case
if (null !==
$options['placeholder'
] && 0 === \
count($choiceList->
getChoicesForValues([''
]))) { $placeholderView =
new ChoiceView(null, '',
$options['placeholder'
],
$options['placeholder_attr'
]);
// "placeholder" is a reserved name
$this->
addSubForm($builder, 'placeholder',
$placeholderView,
$options);
} $this->
addSubForms($builder,
$choiceListView->preferredChoices,
$options);
$this->
addSubForms($builder,
$choiceListView->choices,
$options);
} if ($options['expanded'
] ||
$options['multiple'
]) { // Make sure that scalar, submitted values are converted to arrays
// which can be submitted to the checkboxes/radio buttons
$builder->
addEventListener(FormEvents::PRE_SUBMIT,
static function DFormEvent
$event) use ($choiceList,
$options, &
$unknownValues) { $form =
$event->
getForm();