Salut à tous,
Dans un form j'aimerais mettre en place un champ de type entity qui fonctionnerait de la manière suivante :
- à la création du form le champ contiendrait la liste des libellés de la table lié à l'entity du form (pas de problème cela marche)
- à la soumission du form, retrouver l'ensemble des libellés de la table lié à l'entity et avoir en tête et 1e affichage dans le champ la valeur soumisse et validée par le user (pas de problème cela marche)
- lors de la recréation de la page SANS SOUMISSION DU FORM, pouvoir reconstruire le champ avec en tête la précédente valeur soumisse et validée de l'utilisateur qui a été mise en session et continuer à avoir la liste des libellés de la table lié à l'entity également (c'est cela que je n'arrive pas à faire).
Voici le code du champ lié au form :
Qu'est ce qui pourrait bien empécher le fonctionnement de cette option de "preferred_choices" fort intéressante ?
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 public function buildForm(FormBuilderInterface $builder, array $options) { $defaultCQSsearch = new CqsProSansMarque(); $defaultCQSsearch->setRayLibelle((!array_key_exists('ray_libelle', $options['attr'])) ? null : $options['attr']['ray_libelle']); $defaultCQSsearch->setFamLibelle((!array_key_exists('fam_libelle', $options['attr'])) ? null : $options['attr']['fam_libelle']); $defaultCQSsearch->setCaeLibelle((!array_key_exists('cae_libelle', $options['attr'])) ? null : $options['attr']['cae_libelle']); $builder ->add('ray_libelle', 'entity', array( 'class' => 'ApplicationDriveBundle:CqsProSansMarque', 'data_class' => 'Application\DriveBundle\Entity\CqsProSansMarque', 'property' => 'ray_libelle', 'query_builder' => function(CqsProSansMarqueRepository $er){ return $er->createQueryBuilder('a') ->select('a') ->groupBy('a.ray_libelle'); }, 'preferred_choices' => array($defaultCQSsearch), 'label' => 'rayon', 'required' => false, ))
Je possède bien un objet setter correctement avec les données en session et pourtant cela ne marche toujours pas.
Qu'en pensez-vous ?
Merci pour votre aide.
Partager