2016-09-27 71 views
0

我有两个实体,它们通过多对一的教义关联相互连接。我创建了一个表单集合,但是当我尝试保存某些内容时它碰到了一个错误。Symfony表单集合错误

,我遇到了错误:

​​

这是我第一次形式加载集合的一个。

class TestType extends AbstractType 
{ 
    /** 
    * @param FormBuilderInterface $builder 
    * @param array $options 
    */ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('option', CollectionType::class, [ 
       'entry_type' => SurveyOptionType::class, 
       'allow_add' => true, 
       'allow_delete' => true, 
       'entry_options' => [ 
        'label' => false, 
       ], 
      ]) 
      ->add('submit', SubmitType::class, [ 
       'label' => 'Salveaza', 
      ]) 
     ; 
    } 

    /** 
    * @param OptionsResolver $resolver 
    */ 
    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver->setDefaults([ 
      'data_class' => SurveyManager::class 
     ]); 
    } 
} 

这是集装形式:

class SurveyOptionType extends AbstractType 
{ 
    /** 
    * @param FormBuilderInterface $builder 
    * @param array $options 
    */ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('isEnabled', CheckboxType::class, [ 
       'label' => 'Chestionar Activ', 
      ]) 
      ->add('headquarter', EntityType::class, [ 
       'class' => HeadQuarterManager::class, 
       'multiple' => false, 
       'expanded' => false, 
      ]) 
      ->add('userNumber', IntegerType::class, [ 
       'attr' => [ 
        'min' => '1', 
        'type' => 'number', 
       ], 
       'label' => 'Numar Utilizatori', 
      ]) 
     ; 
    } 

    /** 
    * @param OptionsResolver $resolver 
    */ 
    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' => SurveyOption::class 
     )); 
    } 
} 

我的控制器动作:

public function newAction($surveyId, Request $request) 
    { 
     $surveyOption = new SurveyOption(); 
     $em = $this->getDoctrine()->getManager(); 
     $surveyRepository = $em->getRepository(SurveyManager::class); 
     $survey = $surveyRepository->findOneBy(['id' => $surveyId]); 

     $form = $this->createForm(TestType::class, $survey); 
     $form->handleRequest($request); 

     if ($form->isSubmitted() && $form->isValid()) { 

     } 

     return [ 
      'surveyOption' => $surveyOption, 
      'form' => $form->createView(), 
     ]; 
    } 
+0

“SurveyManager”应该有一个'getOptions'方法,我认为最好是renam e表单域为'surveyOption',因此它永远不会与表单选项冲突。回到Symfony 2.3中,另一种方法叫做“getOptions”,现在它被重命名为“configureOptions”。 – Rvanlaak

+0

实体具有所有必需的方法..因为我使用了generatie:它们的实体 –

回答

0

的问题是无用的..因为我赶时间,overburned ..我没有注意到一些错误.. ..罚款形式.. :-)