【问题标题】:Symfony form validation image required if not already set如果尚未设置,则需要 Symfony 表单验证图像
【发布时间】:2014-10-30 13:44:14
【问题描述】:

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

当表单第一次渲染时,图像没有设置,应该是表单提交时的强制要求。在后续的表单提交中,如果文件已经上传并存储了路径,则表单提交应该通过。

我无法弄清楚如何实现此条件验证。 我的表单包含

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

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

【问题讨论】:

    标签: forms validation symfony


    【解决方案1】:

    你应该看看Symfony's form events

    在你的情况下,我认为是这样的:

    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(),
            ));
        });
    }
    

    可以满足您的需求

    【讨论】:

      猜你喜欢
      • 2017-05-17
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 2020-03-19
      相关资源
      最近更新 更多