pre_set_data和post_submit表单事件

时间:2014-04-28 22:18:38

标签: php symfony

我的表单中有两个列表:“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函数中的查询被调用两次。

这是正常行为吗?

1 个答案:

答案 0 :(得分:0)

当然这很正常。这两个事件都会发生,因此两个侦听器都被激活,调用你的函数$ formModifier ...所以函数被调用两次。