我的表单中有两个列表:“State”和“Country”。州名单取决于国家名单。 我使用表单事件来处理这个问题,根据文档,我需要两个事件:pre_set_data和post_submit。所以我的代码是我的表单类型:
$formModifier = function(FormInterface $form, Country $country) use ($options) {
// Query to get all states by countryID
}
1 /初始化
$builder->addEventListener(FormEvents::PRE_SET_DATA, function(FormEvent $event) use ($formModifier)
{
$country = ...;
$formModifier($event->getForm, $country);
}
2 /帖子提交处理程序
$builder->get('country')->addEventListener(FormEvents::POST_SUBMIT, function(FormEvent $event) use ($formModifier) {
$formModifier($event->getForm()->getParent(), $event->getForm()->getData());
}
除了表单提交pre_set_data和post_submit之外,一切正常。我在$ formModifier函数中的查询被调用两次。
这是正常行为吗?
答案 0 :(得分:0)
当然这很正常。这两个事件都会发生,因此两个侦听器都被激活,调用你的函数$ formModifier ...所以函数被调用两次。