簡體   English   中英

Symfony表單收集錯誤

[英]Symfony Form Collection error

我有兩個通過教義關聯多對一相互連接的實體。 我創建了一個表單集合,但是當我嘗試保存某些內容時,它會出錯。

我得到的錯誤:

Expected argument of type "Zenith\SurveyBundle\Entity\SurveyOption", "array" given 

這是我加載表格的第一個表格。

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(),
        ];
    }

這個問題是沒有用的..因為我很着急和疲憊..我沒注意到一些錯誤..表格很好.. :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM