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 :

Update attribut entité cascade


Sujet :

Symfony PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 184
    Points : 46
    Points
    46
    Par défaut Update attribut entité cascade
    Bonjour,

    Problème :

    3 entité (A, B, C)

    Dans l'entité A je peux mettre des entités B.

    Dans l'entité B je peux mettre des entités C.

    Dans la C on met rien.

    Jusqu’à la c'est bon ?

    Chaque entité à un état : Vert ou Rouge.

    Je veux que dans mon fichier entity A, B et C je veux faire une fonction qui permet lorsque je change (modifie ou supprime une entité), sf2 appel cette fonction pour mettre à jour les état automatiquement.

    A1 (rouge)
    B1 (rouge)
    C1 (vert)
    C2 (rouge)
    B2 (vert)

    C3 (vert)
    B3 (rouge)

    C4 (rouge)

    Si je supprime C2, dans B1 il n'y a plus d'état rouge donc B1 doit passer au vert.. j’essaye de faire ça. A tu une idée de comment je pourrais si je ne dois pas utiliser le fichier entity.

    Mais la c'est un exemple j'aurais pu modifier juste l'état de C2 et le B1 serait passer au vert, ou dans B2 j'aurais pu rajouter C5 qui est rouge donc B2 serait passer au rouge, ect...

    Je peux faire comment ??

    Merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2011
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2011
    Messages : 477
    Points : 677
    Points
    677
    Par défaut
    Bonsoir,

    Il manque pour comprendre si c'est des relations one to one, many to one ou many to many

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 184
    Points : 46
    Points
    46
    Par défaut
    Désolé, c'est que des relations ManyToOne bidirectionnel

  4. #4
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2011
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2011
    Messages : 477
    Points : 677
    Points
    677
    Par défaut
    Non pourquoi désolé ????

    Par contre peux tu refaire ton schéma pour indiquer qui est many et qui est one dans ta demande.

    Après tu faire peux faire avec les listeners doctrine.

  5. #5
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Quelles que soient les relations entre tes entités, la solution se trouve dans les Lifecycle Events de Doctrine. (postPersist, postUpdate, postRemove etc.)

    Chaque fois qu'une entité est créée/modifiée/supprimée, la ou les fonctions que tu assigneras à ces évènements seront déclenchées.

    À l'intérieur de ces fonctions tu pourras alors reparcourir tes collections et tes parents et les mettre à jour également. La cascade se fera de parents en parents.

    Exemple : je suis un C rouge dans une collection de 4 C : les autres sont tous verts.

    Mise à jour de C => vert
    Post Update de C : je vérifie la collection à laquelle j'appartient : tout le monde est vert je fais une mise à jour du parent B pour qu'il passe au vert également
    Post Update de B : je vérifie la collection à laquelle j'appartient : tous les B sont verts je fais une mise à jour du parent A pour qu'il passe au vert également.
    ...
    etc.

    Tu peux appliquer cette unique fonction en indiquant que tu veux qu'elles soient déclenchée au moment d'une création, d'une mise à jour ou d'une suppression.

    http://docs.doctrine-project.org/en/...ycle-callbacks

Discussions similaires

  1. [2.x] Persist entité cascade et postPersist
    Par Issiel dans le forum Symfony
    Réponses: 4
    Dernier message: 01/07/2013, 17h33
  2. [2.x] Update attribut cascade
    Par jeyGey dans le forum Symfony
    Réponses: 2
    Dernier message: 22/05/2013, 09h37
  3. [SL3] Update d'entité Ria Services Bêta
    Par wil4linux dans le forum Silverlight
    Réponses: 2
    Dernier message: 30/10/2010, 10h22
  4. Pb avec ON DELETE/UPDATE CASCADE
    Par trotters213 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 09/03/2005, 11h55
  5. Entité dans la définition d'un attribut ?
    Par iceman dans le forum Valider
    Réponses: 3
    Dernier message: 09/03/2004, 16h16

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