Énoncé du problème:

Deux entités: Info et User (FOSUserBundle)

Type de relation entre les entités: ManyToOne

Les utilisateurs sont déjà dans la base de données

Le problème:

Lors de la création d'une info, il me donne une erreur en modification de User.

ERREUR: Une exception s'est produite lors de l'exécution 'SET UPDATE utilisateur username =, mot de passe =, = date_naissance, etablissement =, username_canonical =????? WHERE id =? avec params [null, null, null, null, null, 19]:

SQLSTATE [23000]: Integrity violation de contrainte: 1062 double entrée'' pour la clé 'UNIQ_2DA1797792FC23A8'
mais je veux persister Info sans modification de User.

Code attaché la méthode ajouterInfoAction () + classe info

classe info :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
...
/**
 * @ORM\ManyToOne(targetEntity="Usms\UserBundle\Entity\User")
 * @ORM\JoinColumn(nullable=false)
 */
private $user;
....
méthode ajouterInfoAction () :

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
....
    $user=$this->get('security.context')->getToken()->getUser();
    if ($this->get('security.context')->isGranted('ROLE_ENSEIGNANT')) {
        $info = new Info;
        $info->setUser($user);
 
 
 
          $form = $this->createForm(new InfoType, $info);
 
 
          $request = $this->get('request');
          if ($request->getMethod() == 'POST') {
              $form->bind($request);
 
              if ($form->isValid()) {
 
              $em = $this->getDoctrine()->getManager();
 
              $em->persist($info);
 
              $em->flush();
 
              return $this->redirect($this->generateUrl('usms_harakiya_homepage'));
              }
et Merci d'avance