缺少从 FormEvents PRE_SUBMIT 到 SUBMIT 侦听器的数据

问题描述

我有一个 Symfony 4 表单,我想在其中操作字段的值。

我附加了更多的侦听器:PRE_SET_DATA、PRE_SUBMIT 和 SUBMIT(最后一个仅用于验证目的)。

更准确地说,它是一个修改表单中的文件上传者字段,所以如果用户留空,那么我想使用之前的值(没有变化)。

$builder->addEventListener(FormEvents::PRE_SET_DATA,function (FormEvent $event) {
  $data = $event->getData();
  $event->getForm()->get('picture')->setData($data->getPicture());

在上面的例子中,我用存储的值(来自实体)设置了字段的值,这是有效的

$builder->addEventListener(FormEvents::PRE_SUBMIT,function (FormEvent $event) {
  $data = $event->getData();  // array
  $entity = $event->getForm()->getData();
  if (empty($data['picture']) && !empty($entity)) {
    $data['picture'] = $entity->getPicture();
    $event->setData($data);
  }

dumping $event 仍然包含数据,到目前为止还好。

   $builder->addEventListener(FormEvents::SUBMIT,function (FormEvent $event) {
      dump($event);
    });

但是 SUBMIT 事件忘记了所有,此时我无法添加它。

目标是设置 picture 字段的值,使其朝向 SUBMIT 而不会消失。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)