database - 我可以使用数据转换器来组合 symfony2 中表单中的字段吗

标签 database forms symfony doctrine-orm

是否可以使用数据转换器将表单中的 (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/

相关文章:

forms - symfony2 表单中找不到实体错误

winforms - 在 XNA 中使用 system.windows.forms

php - 原则缓存关系

c# - 列出 Entity Framework 中外键指向的实体

php - MySQL检查表是否存在而不抛出异常

c# - 向表中添加多个值

php - Symfony 不能决定哪个类需要

mysql存储过程列错误

javascript - 如果我在 mvc 中通过 jquery 填充字段,则显示必需的验证错误

php - Symfony 3/Doctrine - 获取实体更改集中关联的更改