-
-
Notifications
You must be signed in to change notification settings - Fork 9.7k
Closed
Labels
BugFormGood first issueIdeal for your first contribution! (some Symfony experience may be required)Ideal for your first contribution! (some Symfony experience may be required)Status: Needs Review
Description
Symfony version(s) affected
5.4.10
Description
RepeatedType sets NULL even though the "empty_data" option is set to the empty string.
How to reproduce
AccountType.php
<?php declare(strict_types = 1);
namespace App\Form\Type;
use App\Form\Data\AccountData;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\OptionsResolver\OptionsResolver;
class AccountType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder->add('password', RepeatedType::class, [
'type' => PasswordType::class,
'required' => false,
'empty_data' => '', // Does not work
'options' => [
'empty_data' => '', // Does not work
],
]);
// Hack: RepeatedType does not respect empty_data option
//$builder->get('password')->addEventListener(FormEvents::SUBMIT, function (FormEvent $event): void {
// if (null === $event->getData()) {
// $event->setData('');
// }
//});
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => AccountData::class,
]);
}
}
AccountData.php
<?php declare(strict_types = 1);
namespace App\Form\Data;
class AccountData
{
public string $password = '';
}
Possible Solution
No response
Additional Context
No response
Metadata
Metadata
Assignees
Labels
BugFormGood first issueIdeal for your first contribution! (some Symfony experience may be required)Ideal for your first contribution! (some Symfony experience may be required)Status: Needs Review