Bonjour
voilà j'ai fait un formulaire dynamique (en suivant la doc officielle) qui contient une liste déroulante de "type de serveur" et une autre liste déroulante de "détail" qui devra afficher son contenu en fonction du type sélectionné.

sauf que j'obtiens une erreur que je n'arrive pas à résoudre :
Type error: Argument 2 passed to MuBundle\Form\ServeurType::MuBundle\Form\{closure}() must be an instance of MuBundle\Entity\TypeServeur, instance of Doctrine\ORM\PersistentCollection given, called in /Documents/Mu/src/MuBundle/Form/ServeurType.php on line 58

voici le code de mon formulaire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 
 
class ServeurType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
 
        $builder
            ->add('nom', 'text', array(
                'disabled' => true,
                'mapped' => true,
            ))
            ->add('description', 'textarea', array('label' => 'Description'))
            ->add('dateCreation', 'date', array('widget' => 'single_text', 'label' => 'Date de mise en service (yyyy-mm_dd) '))
            ->add('maitre')
            ->add('serveurMaitre', null, array('label' => 'Dépend du serveur maitre '))
            ->add('typeServeurs')
            ->add('etatServeur', 'entity', (array(
                'class' => 'MuBundle:EtatServeur',
                'label' => 'Etat Serveur',
                'required' => false,
                'multiple' => false)));
 
 
        $formModifier = function (FormInterface $form, TypeServeur $type = null) {
            $detailtypes = null === $type ? array() : $type->getDetailTypes();
 
            $form->add('detailTypes', 'entity', array(
                'class' => 'MuBundle:DetailTypeServeur',
                'placeholder' => 'détail',
                'choices' => $detailtypes,
            ));
        };
 
 
        $builder->addEventListener(
            FormEvents::PRE_SET_DATA,
            function (FormEvent $event) use ($formModifier) {
                $data = $event->getData();
 
                $formModifier($event->getForm(), $data->getTypeServeurs());
            }
        );
 
        $builder->get('typeServeurs')->addEventListener(
            FormEvents::POST_SUBMIT,
            function (FormEvent $event) use ($formModifier) {
                $type = $event->getForm()->getData();
                $formModifier($event->getForm()->getParent(), $type);
            }
        );
 
 
    }
 
    /**
     * @param OptionsResolverInterface $resolver
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'MuBundle\Entity\Serveur'
        ));
    }
 
    /**
     * @return string
     */
    public function getName()
    {
        return 'Mubundle_serveur';
    }
}
entre mon entité serveur et typeServeur, j'ai une relation ManyToMany et entre TypeServeur et DetailTypeServeur : ManyToOne.

Pourriez-vous m'expliquer comment résoudre mon problème svp ?