是否可以使用数据转换器将表单中的 (n) 个字段合并到一个可持久字段中? 如果可能的话,怎么做? cookbook 仅给出了将一个数据转换为另一种类型的示例,但我需要能够将 N 个字段转储为一个以实现持久性。因此,如果我在表单中显示 6 个字段,只有 3 个是 DB 表中的真实字段,第一个和第二个字段将按原样保留,但其余 4 个字段将存储在第三个表列中。
最佳答案
您应该通过 FormEvent::POST_SUBMIT
事件来完成。
http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html
基本上,是这样的:
$builder->addEventListener(FormEvents::POST_SUBMIT, function(FormEvent $event) {
$form = $event->getForm();
// entity or array
$data = $event->getData();
// get data directly from form
$concatData = $form->get('non_mapped_field1_1')->getData() . ',' . $form->get('non_mapped_field1_2')->getData();
// assumig that data is entity class
$data->setSomeField($concatData);
}
);
关于database - 我可以使用数据转换器来组合 symfony2 中表单中的字段吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20084572/