Bonsoir les amis,

Cela fait plusieurs jours que je recherche comment mettre une query builder dans un FormType.

Je viens de trouver une solution qui semble fonctionner

Mais Symfony me renvoie l'erreur suivante :

HTTP 500 Internal Server ErrorExpected argument of type "Doctrine\ORM\QueryBuilder", "array" given

Je ne comprend pas d'où vient cet erreur, car l'impression de faire Query comme j'ai l'habitude de le faire.

Voici mon code dans le fichier FormType

->add('niveau', EntityType::class,
    [
        'class' => Niveau::class,
        'choice_label' => 'nomNiveau',
        'query_builder' => function (NiveauRepository $nr) use ($id_formation, $id_groupement) {

            return $nr->niveauChapitre($id_formation, $id_groupement);
        },
    ]
)
public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults([
        'data_class' => Chapitre::class,
        'id_formation' => null,
        'id_groupement' => null,

    ]);
}

Voici mon code dans le Repository

/**
 * @return Niveau[] Returns an array of Niveau objects
 */
public function niveauChapitre($id_formation, $id_groupement)
{
    return $this->createQueryBuilder('n')
        ->andWhere('n.formation = :formation')
        ->setParameter('formation', $id_formation)
        ->andWhere('n.groupement = :groupement')
        ->setParameter('groupement', $id_groupement)
        ->getQuery()
        ->getResult()
    ;
}

1 réponse


Devdeb22
Auteur
Réponse acceptée

Problème résolu :
En faite il fallait que je retire les méthodes

->getQuery()
->getResult()

Du fichier Repository