Symfony表单-根据其他字段值向表单中添加所需字段

Symfony表单-根据其他字段值向表单中添加所需字段,symfony,Symfony,当其他字段有值时,我想向表单中添加一些必填字段。我曾尝试使用PRE_SET_DATA事件来执行此操作,但无法在我的事件中获取数据 这里的示例是在用户结婚时添加partner name字段 我的用户类型 怎么了?如何根据其他字段动态添加新字段? 我也尝试过POST_SET_数据,但它不起作用。您需要文档这一部分中的第二个示例 基本上,您可以将事件侦听器设置为整个表单。您应该使用POST_SUBMIT事件向字段本身添加另一个侦听器 public function buildForm(Form

当其他字段有值时,我想向表单中添加一些必填字段。我曾尝试使用PRE_SET_DATA事件来执行此操作,但无法在我的事件中获取数据

这里的示例是在用户结婚时添加partner name字段

我的用户类型

怎么了?如何根据其他字段动态添加新字段?
我也尝试过POST_SET_数据,但它不起作用。

您需要文档这一部分中的第二个示例

基本上,您可以将事件侦听器设置为整个表单。您应该使用POST_SUBMIT事件向字段本身添加另一个侦听器

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('familyStatus', ChoiceType::class, [
                'label' => 'Statut de famille',
                'label_attr' => [
                    'class' => 'fg-label'
                ],
                'attr' => [
                    'class' => 'sc-gqjmRU fQXahQ'
                ],
                'required' => true,
                'choices' => [
                    'Married' => 'M',
                    'Single' => 'S'
                ]
            ])
            ->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
                $form = $event->getForm();
                $user = $event->getData();
                $status = $user->getFamilyStatus(); // Give me NULL
                //$status = $form->get('familyStatus')->getData() Give me NULL too


                /*
                if ($user && $status === 'M') {
                    $form->add('partnerName', TextType::class, [
                        'required' => true,
                        'mapped' => false
                   ]);
                )
                */
            })
        ;
    }