2014-02-25 24 views
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?

謝謝

+0

作爲重複結算您的代碼看起來是正確的。我會使用'use'語句,例如:http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html。我認爲表格正確顯示?添加一個die語句只是爲了確保函數永遠不會被調用。 – Cerad

+0

你猜對了。表格正確顯示,但事件永遠不會調用。 我已經添加了一個死亡聲明,就像你問。頁面和表單正確顯示。 我試圖找出在symfony2事件系統中發生了什麼。我不知道爲什麼Symfony \ Component \ EventDispatcher \ EventDispatcher會釋放我的事件。 – Waldo

+0

我有同樣的問題。看來,symfony不會搜索兒童formType上的事件/數據轉換(在挖掘表格類後) – Chopchop

回答