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 :

Formulaires imbriqués, ArrayCollection, delete lors d'un update [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 116
    Points : 85
    Points
    85
    Par défaut Formulaires imbriqués, ArrayCollection, delete lors d'un update
    Bonjour,

    Je reviens avec mon formulaire imbriqué.
    http://www.developpez.net/forums/d12...ntite-parente/

    Lors d'un update, je peux ajouter et modifier un arrayCollection, mais je ne peux pas le supprimer, je n'ai aucun message d'erreur.

    Pour rappel, mon entité SiteActivity a une clé primaire sur deux colonnes.

    Code de l'update :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            if ($editForm->isValid()) 
            {
                foreach ($entity->getSiteActivities() as $site)
                {
                       $site->setActivity($entity);
                }
     
                $em->persist($entity);
                $em->flush();
     
                return $this->redirect($this->generateUrl('activity_show', array('id'=> $id)));
            }
    Merci.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 116
    Points : 85
    Points
    85
    Par défaut
    réponse :
    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
     
                if ($editForm->isValid()) 
                {
     
                    // filter $originalSiteactivities to contain Siteactivities no longer present
                    foreach ($activity->getSiteactivities() as $siteactivity) {
     
                        foreach ($originalSiteactivities as $key => $toDel) {
                            if ($toDel === $siteactivity) {
                                unset($originalSiteactivities[$key]);
                            }
                        }
                    }
     
                    // remove the relationship between the siteactivity and the activity
                    foreach ($originalSiteactivities as $siteactivity) {
     
                         $em->remove($siteactivity);
                    }
     
                    $em->persist($activity);
                    $em->flush();
     
                    return $this->redirect($this->generateUrl('activity_show', array('id' => $id)));
                }

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

Discussions similaires

  1. Exception lors de insert, update et delete
    Par haykelFST dans le forum PL/SQL
    Réponses: 3
    Dernier message: 02/05/2012, 17h24
  2. Erreur lors d'un Update et delete [Entities Framework : FW 4.0]
    Par napster dans le forum Entity Framework
    Réponses: 4
    Dernier message: 04/04/2011, 11h04
  3. Comment se servir de inserted et deleted lors d'un update
    Par oadin dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 29/02/2008, 15h13
  4. [VBA] problème lors de l'UPDATE à cause d'un sous-formulaire
    Par fellower dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 19/04/2007, 11h45
  5. Problème lors d'un Update sur une date
    Par Nany dans le forum ASP
    Réponses: 3
    Dernier message: 19/05/2004, 22h37

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