问题描述
我有一个 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 (将#修改为@)