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

Doctrine2 PHP Discussion :

Mapping et relation : problème à la suppression


Sujet :

Doctrine2 PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Points : 2
    Points
    2
    Par défaut Mapping et relation : problème à la suppression
    Bonjour à tous,

    J'ai une entité Student qui est en relation avec une Classe. Un étudiant pour appartenir à une seule classe et les classes peuvent avoir plusieurs étudiants.

    J'ai essayé comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //Student.php
    /**
    * @ORM\ManyToOne(targetEntity="Classe", inversedBy="students")
    */
    protected $classe;
     
    //Classe.php
    /**
    * @ORM\OneToMany(targetEntity="Student", mappedBy="classe")
    */
    protected $students;
    Cela fonctionne bien au moment du persist d'un étudiant, le problème est que quand je supprime une classe il me donne une erreur "sql constraint integrity unable to update or delete...".

    J'aimerais en fait que quand je supprime une classe, il me mette NULL à la place du classe_id dans la table student.

    Auriez-vous une idée.

    Merci d'avance

  2. #2
    Inscrit
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 476
    Points
    476
    Par défaut
    Salut,

    Il faut que tu précises le cascade de ton action delete. C'est expliqué dans la doc doctrine : http://www.doctrine-project.org/docs...ade-operations

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Bonjour winzou,

    Le problème c'est que si je mets remove ou all, il me supprime mon objet student.

    Je viens de tomber sur une solution qui a l'air de fonctionner, je teste avec d'autres relations. Il faut préciser le onDelete dans l'entité Student.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //Student.php
    /**
    * @ORM\ManyToOne(targetEntity="Classe", inversedBy="students")
    * @ORM\JoinColumn(onDelete="SET NULL")
    */
    protected $classe;
    Edit: Bon et bien cela fonctionne bien pour toutes mes relations ManyToOne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Relation]Problème mapping OneToMany
    Par Molos dans le forum Doctrine2
    Réponses: 6
    Dernier message: 10/08/2011, 04h57
  2. Remove et Maps, problème de suppression
    Par Zanga dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 16/12/2009, 23h13
  3. Problème de mapping de relation et de compréhension!
    Par Ginseng dans le forum Hibernate
    Réponses: 1
    Dernier message: 21/09/2007, 10h27
  4. Problème de suppression des relations de table
    Par mouche dans le forum Access
    Réponses: 2
    Dernier message: 10/05/2007, 13h50
  5. Réponses: 4
    Dernier message: 16/04/2004, 08h20

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