2012-12-14 28 views
0

有任何問題可以知道父表單是否有效。這是代碼。它總是拋出:「你不能在未綁定的窗體上調用isValid()。」謝謝!!檢查表單父項在Symfony2中是否有效

class FoorType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('field_1') // Required 
      ->add('field_2') // Required 
      ->add('field_3') // Required 
      ->add('bar', 'my_custom_form_type') // Not required 
    } 
} 

class MyCustomFormType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->addEventListener(FormEvents::POST_BIND, function(DataEvent $event) { 
      $form = $event->getForm(); 
      $data = $event->getData(); 

      if ($form->getParent()->isValid()) { 
       // Do smething... 
      } 
     }); 
    } 

    public function getParent() 
    { 
     return 'text'; 
    } 

    public function getName() 
    { 
     return 'my_custom_form_type'; 
    } 
} 

回答

0

嗨找到解決方案!

使用的getParent()中的addEventListener:

$builder->getParent()->addEventListener(FormEvents::POST_BIND, function(DataEvent $event) 
{ 
    // Code 
});