我有一个实体的 Symfony 表单自定义类型。
我想自定义提交表单时执行的代码,但仅限于字段。
例如,Symfony 默认会这样调用:
$entity->setFoo($value);
我想做这样的调用:
$entity->doSomething($value, true);
如何在不影响与表单正确映射的所有其他属性的情况下做到这一点?
您可以定义您的foo
字段的形式为not mapped
然后添加监听器POST_SUBMIT
那会打电话给你doSomething()
method:
$builder->add('foo', null, array('mapped' => false))
;
$builder->addEventListener(
FormEvents::POST_SUBMIT,
function(FormEvent $event) {
$entity = $event->getForm()->getData();
$entity->doSomething($event->getForm()->get('foo')->getData(), true);
}
);
它不会调用$entity->setFoo($value)
。相反,它会调用$entity->doSomething($value, true)
如你所愿。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)