IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Erreur lors d'un flush


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Erreur lors d'un flush
    Bonsoir je me permet de vous poser une question, je suis actuellement en train de développer un site avec le framework Symfony et j'obtiens l'erreur "SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicata du champ 'user' pour la clef 'UNIQ_8D93D64992FC23A8'" il tente de réinsérer dans la table user l'utilisateur qui est connecté ( et donc qui est déjà rentré dans la base) alors que je lui demande d'ajouter une nouvelle ligne dans la table enfant. Je pense que cette erreur vient depuis que j'ai installé FosUserBundle car mon code fonctionnait très bien avant.

    Voici la trace que j'obtiens pour l'erreur :
    Nom : traceErreur.PNG
Affichages : 217
Taille : 74,9 Ko

    Et les queries :
    Nom : queries.PNG
Affichages : 214
Taille : 34,3 Ko

    Et le code qui plante :
    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
    class EnfantController extends Controller
    {
        public function ajouterAction(Request $request)
        {
            // On creer une nouvelle ligne
            $enfant = new Enfant();
            $profil = $_SESSION['profil'];
     
            // On créer le formBuilder
            $form = $this->get('form.factory')->create(EnfantType::class,$enfant);
     
            if($request->isMethod('POST') && $form->handleRequest($request)->isValid()){
                $em = $this->getDoctrine()->getManager();
                $enfant->setProfil($profil);
                $em->persist($enfant);
                $em->flush();
                //return new RedirectResponse($this->get('router')->generate('ajouterAdresse'));
            }
            return $this->render('SiteBundle:Default:ajouterEnfant.html.twig', array('form' => $form->createView()));
        }
    }
    Merci d'avance pour vos réponses.
    Cordialement vincauddu29

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Points : 1 022
    Points
    1 022
    Par défaut
    Commencons d'abord par comprendre c'est quoi $em , que veux dire persist et flush ..
    Bon bref avec flush les objets persistés dans la poule em sont traduit par l 'ORM sous forme de plusieurs requetes SQL.
    c'est clair ici qu il y a une contrainte d’intégrité, c'est comme insérer un varchar dans une colonne qui n'accepte que des entiers

    Dans ce cas , la requête insert INTO contient la valeur "user" qui n'est pas autorisé a etre utilisé par plusieurs ligne dans cette table.
    C'est normal, c'est pas logique d'avoir deux utilisateurs avec le meme username !

    La solution, il faut juste ajouter une validation sur l'entité pour gérer ce scénario et afficher à l'utilisateur un message compréhensible

Discussions similaires

  1. Erreur lors de l'execution d'un script jsp
    Par tuxor dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 06/08/2004, 13h35
  2. Erreur lors de la connexion
    Par mathll65 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 23/03/2004, 18h46
  3. Erreur lors d'une requete INNER JOIN
    Par k-lendos dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/03/2004, 16h09
  4. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 18h16
  5. [VB6] Erreur lors de l'ouverture d'un document Word
    Par Marco le Pouillot dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/01/2003, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo