Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'ai un formulaire utilisant un élément de type collectionType, dans lequel je souhaite faire un queryBuilder, seulement je ne sais pas comment lui passer des arguments pour construire ma requete.
Dans mon collectionType je veux séléctionner des lignes de ma tables "Societe" en fonction de l'utilisateur connecter.

Quand je ne suis pas dans un collectionType, je fais : $mesInfos = $builder->getForm()->getData();
Mais dans le cas d'un collectionType getData renvoi null.

Voici mon code du formulaire:

$builder
            ->add('groupements',CollectionType::class,[
                'entry_type'        => ReponseGroupementType::class,
                'prototype'         => true,
                'allow_add'         => true,
                'allow_delete'      => true,
                'by_reference'      => false,
                'required'          => false,
                'label'             => false,
                'attr'              => array(
                    'class' => 'my-selector',
                ),
            ])

Mon builder pour le collectionType :

$builder
            ->add('societe', EntityType::class, array(
                    'class'         => Societe::class,
                    'query_builder' => function (EntityRepository $er) use ($soumissionnaireId) {
                        return $er->createQueryBuilder('s')
                            ->Where('s.soumissionnaire = :soumissionnaireId')
                            ->setParameter('soumissionnaireId', $soumissionnaireId)
                            ->orderBy('s.id', 'ASC');
                    },
                    'placeholder'   => 'Sélectionnez une société',
                    'attr'          => ['data-select' => 'true']
                )
            )

Ce que je veux

Je ne sais pas comment récupérer la valeur $soumissionnaireId lorsque je suis en collectionType.
Autremement je fais :
$mesInfos = $builder->getForm()->getData();
$soumissionnaireId = $mesInfos->getReponse()->getSoumissionnaire()->getId();

Merci d'avance pour vos solutions

Aucune réponse