Bonjour,

Je dois afficher une dropdown à partir d'un query_builder dans un form

Voici le code dans le Form :


$builder->add('dispositif', EntityType::class, array(
            'class'     => 'LeaPrestaBundle:EgwDispositif', 
            'label'     => 'nomDispositif',
            'required'  => true,
            'empty_data' => null,
            'query_builder' => function( $er) 
            {
            return $er->createQueryBuilder('d')
            ->where('d.isActive = :isActive')
            ->setParameter('isActive', 1 )
            ->orderBy('d.nomDispositif','ASC');
            },
        ));

Le problème est que le champs "NomDispositif", n'est pas affiché dans la dropdown , mais seulement la clé de chaque valeur ramenée :

<select id="egw_presta_dispositif" name="egw_presta[dispositif]">
<option value="52"></option>
<option value="55"></option>
<option value="62"></option>
<option value="58"></option>
</select>

A côté du 52, par exemple, dans l'option il doit y avoir un nom de dispositif..

Avez-vous une idée ? Est-ce que celà peut venir de l'entité elle-même ?

Merci pour votre aide !

2 réponses


Hello,

Dans ton EntityType, ajoute l'option 'choice_label' => 'NomDispositif'...
C'est dans la doc, ici : https://symfony.com/doc/current/reference/forms/types/entity.html#choice-label