Php Symfony 3:提交表单后设置值
我有一个Php Symfony 3:提交表单后设置值,php,symfony,symfony-forms,Php,Symfony,Symfony Forms,我有一个表单集合,我想在提交表单后设置字段2,具体取决于字段1的值字段2在表单中不可编辑,但为必填项 我尝试了每个FormEvent(FormEvents::)但是得到了错误: SQLSTATE[23000]:完整性约束冲突:1048列“field2”不能为null 我做错了什么?提前谢谢 试试这个 use Symfony\Component\Form\FormEvents; $builder->addEventListener(FormEvents::PRE_SUBMIT, funct
表单集合
,我想在提交表单后设置字段2
,具体取决于字段1
的值<代码>字段2在表单中不可编辑,但为必填项
我尝试了每个FormEvent
(FormEvents::)但是得到了错误:
SQLSTATE[23000]:完整性约束冲突:1048列“field2”不能为null
我做错了什么?提前谢谢 试试这个
use Symfony\Component\Form\FormEvents;
$builder->addEventListener(FormEvents::PRE_SUBMIT, function(FormEvent $event) {
$data = $event->getData();
$form = $event->getForm();
if (isset($data['field1'])) {
$field2 = $this->container->get('repository')->find($data['field1'])->getValue();
$data['field2'] = $field2;
$event->setData($data);
}
});
var_转储你的字段2,你能发布你的db吗table@g9m29
$field2='testvalue'代码>也不起作用。表中的字段名为field2
$data['field2']=$field2$数据->设置字段2($data)!如果使用POST_SUBMIT事件,则表单基础数据已转换为模型。如果$data应该是一个实体,$data['field2']=$field2肯定会导致致命错误(“对象不能用作数组”),如果我记得很清楚,您不能在POST_SUBMIT事件中修改任何表单数据。使用PRE_SUBMIT代替。这正是我需要的。非常感谢。
use Symfony\Component\Form\FormEvents;
$builder->addEventListener(FormEvents::PRE_SUBMIT, function(FormEvent $event) {
$data = $event->getData();
$form = $event->getForm();
if (isset($data['field1'])) {
$field2 = $this->container->get('repository')->find($data['field1'])->getValue();
$data['field2'] = $field2;
$event->setData($data);
}
});