Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/06/2008, 17h13   #1
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 76
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 76
Points : 26
Points : 26
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 :
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());
 
      }
ghotique est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 00h30   #2
Membre du Club
 
Inscription : mai 2006
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 37
Points : 41
Points : 41
As-tu envisagé d'utiliser la fonction de php ?

Code :
$newAgence = clone $agence;
Pour celà, tu pourrais ajouter dans ta classe Agence.class.php quelque chose du genre :

Code :
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 ...
piterchu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 15h04   #3
Membre éclairé
 
Inscription : mai 2008
Messages : 359
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 359
Points : 397
Points : 397
Bonjour,

Ou encore, en restant à 100% dans symfony, chaque modèle a une méthode
Code :
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
Tsilefy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 15h08   #4
Membre confirmé
 
Avatar de chtipitou
 
Étudiant
Inscription : mars 2006
Messages : 175
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 175
Points : 204
Points : 204
ou la magie des constructeurs par copie
__________________
42
there is no place like 127.0.0.1
Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.
chtipitou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h19.


 
 
 
 
Partenaires

Hébergement Web