简体   繁体   English

Symfony表单收集错误

[英]Symfony Form Collection error

I have two entities that are connected to each other by doctrine association many-to-one. 我有两个通过教义关联多对一相互连接的实体。 I created a form collection but when i try to save something it hits me with an error. 我创建了一个表单集合,但是当我尝试保存某些内容时,它会出错。

The error that i'm getting: 我得到的错误:

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

This is my first form the one that loads the collection. 这是我加载表格的第一个表格。

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

This is the form loaded by collection: 这是由集合加载的表单:

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
        ));
    }
}

My Controller action: 我的控制器动作:

   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