Forms 如果尚未设置Symfony表单验证图像,则需要Symfony表单验证图像

Forms 如果尚未设置Symfony表单验证图像,则需要Symfony表单验证图像,forms,validation,symfony,Forms,Validation,Symfony,在Symfony2中,我有一个表单,其中包含预创建记录的图像上载 当表单第一次呈现时,不设置图像,并且在表单提交时必须设置图像。在随后的表单提交中,如果文件已上载且路径已存储,则表单提交应通过 我无法理解如何实现此条件验证。 我的表格包含 public function buildForm(FormBuilderInterface $builderInterface, array $options) { parent::buildForm($builderInterface, $opti

在Symfony2中,我有一个表单,其中包含预创建记录的图像上载

当表单第一次呈现时,不设置图像,并且在表单提交时必须设置图像。在随后的表单提交中,如果文件已上载且路径已存储,则表单提交应通过

我无法理解如何实现此条件验证。 我的表格包含

public function buildForm(FormBuilderInterface $builderInterface, array $options)
{
    parent::buildForm($builderInterface, $options);
    $builderInterface
        ->add('logoFile', 'file', array(
            'required' => true,
        ))
    // ...
}

但是,仅当实体上的特定字段未填充时,才应强制执行必需字段。

您应该查看

就你而言,我认为:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->addEventListener(FormEvents::/*event*/, function (FormEvent $event) {
        $object = $event->getData();
        $form = $event->getForm();

        $form->add('logoFile', 'file', array(
            'required' => !$object || !$object->getLogoFile(),
        ));
    });
}
能满足你的需要吗