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 :

Dupliquer un objet


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 76
    Par défaut Dupliquer un objet
    Bonjour,

    Je suis un peu bloqué, je veux dupliquer mon objet de tel sorte que je puisse grader les mêmes enregistrements sauf le primaryKey.

    J’ai créé une méthode duplicate qui a le même comportement que la méthode edit et je mets l’id de mon objet a null mais ca ne marche pas

    Je serais reconnaissant si vous avez des propositions


    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    public function executeDuplicate() {
     
                $this->agence = $this->getAgenceOrCreate();
     
                $this->cotisation->setId(null);
     
     
     
                if ($this->getRequest()->getMethod() == sfRequest :: POST) {
     
                      $this->updateAgenceFromRequest();
     
     
     
                      $this->saveAgence($this->agence);
     
     
     
                      $this->setFlash('notice', 'Your modifications have been saved');
     
     
     
                      if ($this->getRequestParameter('save_and_add')) {
     
                            return $this->redirect('agence/create');
     
                      } else
     
                            if ($this->getRequestParameter('save_and_list')) {
     
                                 return $this->redirect('agence/list');
     
                            } else {
     
                                 return $this->redirect('agence/edit?id=' . $this->agence->getId());
     
                            }
     
                } else {
     
                      $this->labels = $this->getLabels();
     
                }
     
                return $this->redirect('agence/edit?id=' . $this->agence->getId());
     
          }

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 38
    Par défaut
    As-tu envisagé d'utiliser la fonction de php ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $newAgence = clone $agence;
    Pour celà, tu pourrais ajouter dans ta classe Agence.class.php quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public function __clone() {
      $this->setId(null);
    // encore un peu de code si tu en as besoin ...
    }
    un petit tour par http://fr.php.net/clone là pour plus d'infos ...

    J'espère que ça t'aidera ...

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Bonjour,

    Ou encore, en restant à 100% dans symfony, chaque modèle a une méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    copy($deepcopy = false)
    Cette méthode effectue une copie de l'objet qui sera envoyée à la base de données une fois qu'elle est enregistrée, avec tous ses éléments sauf le(s) primary key(s).
    $deepcopy permet de préciser si on copie également tous les objets qui se réfèrent à l'objet original (par des foreign keys) ou pas (Par défaut, ce n'est pas copié).

    Tsilefy

  4. #4
    Membre expérimenté Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Par défaut
    ou la magie des constructeurs par copie

Discussions similaires

  1. Dupliquer un objet
    Par GLDavid dans le forum C++
    Réponses: 9
    Dernier message: 11/12/2006, 15h41
  2. [Débutant ?] Dupliquer un Objet
    Par Manopower dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/01/2006, 15h33
  3. [POO] Dupliquer un objet
    Par mch_27 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/12/2005, 09h13
  4. Dupliquer un objet
    Par Mimi Bulles dans le forum Langage
    Réponses: 13
    Dernier message: 15/09/2005, 02h25
  5. Dupliquer un objet
    Par Folken Laëneck dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/08/2005, 09h07

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