3
我有一个合并另一种表单类型的表单类型。Symfony2:子表单中的事件侦听器从不被调用/事件未被分派
我已经添加了一个事件侦听器到子表单,但侦听器永远不会执行。
第一个表单类型:
class AFormType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('aSubFormType', new SubFormType());
}
//[...]
}
第二种形式类型:
class SubFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add("metier", "text");
$builder->addEventListener(
\Symfony\Component\Form\FormEvents::PRE_SET_DATA,
function(\Symfony\Component\Form\FormEvent $event){
// Some Stuff never executed
});
}
}
我不知道这种行为是正确的,或者如果这是一个错误? 而我如何在子表格中使用EventListner?
谢谢
作为重复结算您的代码看起来是正确的。我会使用'use'语句,例如:http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html。我认为表格正确显示?添加一个die语句只是为了确保函数永远不会被调用。 – Cerad
你猜对了。表格正确显示,但事件永远不会调用。 我已经添加了一个死亡声明,就像你问。页面和表单正确显示。 我试图找出在symfony2事件系统中发生了什么。我不知道为什么Symfony \ Component \ EventDispatcher \ EventDispatcher会释放我的事件。 – Waldo
我有同样的问题。看来,symfony不会搜索儿童formType上的事件/数据转换(在挖掘表格类后) – Chopchop