$builder
            ->add('heureArrivee',TimeType::class,['label'=>"Heure d'arrivée"])
            ->add('heurSortie',TimeType::class,['label'=>"Heure de sortie"])
            ->add('livraison',EntityType::class,['class'=>Livraison::class,'choice_label'=>'libelle','label'=>'Point de Livraison'])
            ->add('commentaire',TextareaType::class)
            ->add('Démarrer',SubmitType::class,['label'=>'Valider la tournée'])
            ->add('Effacer',ResetType::class,['label'=>'Effacer les données']);

Ce que je veux

Bonjour,
J'utilise symfony et j'aimerai faire un filtre sur l'état de la livraison.
Si la livraison est faite, il ne doit pas sur la liste de choix

Ce que j'obtiens
J'obtiens l'ensemble des livraisons faites et en attente de livraison

1 réponse


maka
Réponse acceptée

Salut !

Tu peux utiliser le QueryBuilder de doctrine pour spécifier les données que tu souhaites dans ton EntityType

https://symfony.com/doc/current/reference/forms/types/entity.html#using-a-custom-query-for-the-entities

$builder
    ->add('livraison', EntityType::class ,[
        'class' => Livraison::class,
        'choice_label' => 'libelle',
        'label'=> 'Point de Livraison',
        'query_builder' => function (LivraisonRepository $r) {
                return $r->createQueryBuilder('l')
                    ->where('l.isDelivered = 0'); // à toi de changer cette condition
        }
    ]);

Je ne connais pas la structure de ton entité donc je ne peux pas te proposer de conditions valables.

:)