Bonjour,
Voila j'ai suivis ce tuto sur le cookbook http://symfony.com/fr/doc/current/co..._provider.html pour avoir la gestion des rôles directement en bdd. Je n'ai pas touché au définition des champs et annotations.

Je me retrouve donc avec une table utilisateur, une table groupe et une table de liaison utilisateur_groupe.

Ensuite j'ai mis en place un formulaire d'ajout d'utilisateur sur mon interface

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
<?php
 
namespace Frmk\AdminBundle\Form;
 
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Frmk\AdminBundle\Form\EventListener\AddValidFieldSubscriber;
 
class UtilisateurType extends AbstractType
{
        /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('login','text',array("label"=>"utilisateurs.login","translation_domain"=>"utilisateurs"))
            ->add('nom','text',array("label"=>"utilisateurs.nom","translation_domain"=>"utilisateurs"))
            ->add('prenom','text',array("label"=>"utilisateurs.prenom","translation_domain"=>"utilisateurs"))
            ->add('groupes','entity'
                           ,array("label"=>"utilisateurs.role",
                                  "translation_domain"=>"utilisateurs",
                                  "class"=>"FrmkAdminBundle:Groupe",
                                  "property"=>"role")
                 )
            ->add("validate","submit"
                            ,array("label"=>"utilisateurs.valider",
                                   "translation_domain"=>"utilisateurs",
                                   "attr"=>array("class"=>"btn green")
                                  )
                 )
            ->add("reset","reset",array("label"=>"utilisateurs.cancel",
                                        "translation_domain"=>"utilisateurs",
                                        "attr"=>array("class"=>"btn")))
        ;
 
        $builder->addEventSubscriber(new AddValidFieldSubscriber());
    }
 
    /**
     * @param OptionsResolverInterface $resolver
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'Frmk\AdminBundle\Entity\Utilisateur'
        ));
    }
 
    /**
     * @return string
     */
    public function getName()
    {
        return 'frmk_adminbundle_utilisateur';
    }
}
Quand j'affiche le formulaire aucun soucis j'ai bien ma liste de groupe/rôle.

A la validation pour l'ajout de mon formulaire j'ai bien un utilisateur qui est ajouté en BDD mais impossible d'avoir un enregistrement dans la table de liaison qui a été créé pour lié un utilisateur à un groupe/role.

J'ai tenté d'ajouter un groupe à la collection mais si je fais le persist il tente de me le corriger.
Ma question est comme lié le groupe choisit dans le champ select et le lié à l'utilisateur sans qu'il soit créé vu que la liste des groupes existe déjà. En gros effectuer un insert dans la table de liaison utilisateur_groupe.