现在使用Symfony2,我在当前的开发中遇到了一个问题:我需要编辑表单之前发送的数据进行验证。情况如下:
现在,假设“name”设置为“mywebsite”(使用表单),并且域设置为“mydomain.com”(实体字段选择数据库中的域):
我想要实现的是根据所选域更改“名称”字段的值。我想将“domain_name”附加到“name”,以获得:
我找到了2个解决方案,但它们似乎不适合这种情况:
我错过了解决方案吗?
答案 0 :(得分:1)
您可以修改form.PRE_BIND
事件中提交的数据。发生此事件然后您在控制器中调用$form->bind($request)
。如何将event subscriber添加到表单中。请记住,您必须处理未转换为实体等的裸数据。
将Data Transformer应用于整个表单非常简单 - 只是不要指定字段。例如
$builder
->add('name', 'text')
->add('domain', 'entity')
->addModelTransformer($transformer);
VS
// add a normal text field, but add your transformer to it
$builder->add(
$builder->create('name', 'text')
->addModelTransformer($transformer)
);