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