Symfony 依赖必填字段表单

Symfony Dependance required field's form

我有一个包含多个表单类型的合并表单类型。

第一个表单 (callType) 中的必填字段是必填字段,我希望如果其中一个必填字段已填写,则其他必填字段也必须填写。

<?php
class MergedFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('callForm', CallType::class, $call);
        $builder->add('emailForm', EmailSendType::class);
        $builder->add('reminderForm', RappelType::class);
    }
}


<?php
class EmailSendType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
        ->add('email', EmailType::class, [
            'label' => 'form.email',
        ])
        ->add('object', TextType::class, [
            'label' => 'form.object',
        ])
        ->add('document', FileType::class, [
            'label' => 'form.document',
            'required' => false,
        ])
        ->add('content', TextareaType::class, [
            'label' => 'form.content',
        ]);
    }
}

我想使用 symfony 的自动验证,我没有签入控制器文件。

有办法实现吗?

您可以简单地进行表单验证检查,但如果您谈论的是动态验证,则可能需要使用 JavaScript 来执行此操作。

if ($form->isSubmitted() && $form->isValid()) { ... }

如果字段没有静态验证,表单将不再发送。