add('color', ColorChoiceType::class, [ 'required' => false, ]) ; // this code exists only for backward compatibility $builder->addEventListener( FormEvents::PRE_SET_DATA, function (FormEvent $event) { if (!$event->getForm()->getConfig()->hasOption('choices')) { return; } $data = $event->getData(); $choices = $event->getForm()->getConfig()->getOption('choices'); if (\is_object($data) && method_exists($data, 'getColor')) { $color = $data->getColor(); if (!empty($color) && array_search($color, $choices) === false) { $choices[$color] = $color; } } $event->getForm()->add('color', ColorChoiceType::class, [ 'required' => false, 'choices' => $choices, ]); } ); } }