Bonjour, Comme c'est le mois d'aout et qu'on est tous les pieds dans le vent je me réponds car je viens de trouver la solution. Bref propel à un pb avec ce type de mise à jour, vu que mon champ email ( avec lequel je fais la requête ) renvoie bien la ligne correpondante mais ne merge pas le résultat dans le formulaire 'id' disparait. il faut donc se le faire à la main comme ceci : [CODE] public function executeCreate($request){ $c = new Criteria(); $tmp = $request->getParameter('client'); $c->add(ClientPeer::EMAIL,$tmp['email']); $this->utilisateur = ClientPeer::doSelectOne($c); if($this->utilisateur){ $this->maj = true; }
$this->fclient = new ClientForm($this->utilisateur); if ($request->isMethod('post')){ $this->fclient->bind($request->getParameter('client')); if ($this->fclient->isValid()){ if($user && ($user->getMotdepasse()!='default')){ $this->error = "La création de votre compte est impossible, veuillez contacter PhaConcept"; }else{ if($this->maj){ // set the select condition criteria // set the update criteria $update = new Criteria(); if($this->utilisateur->getNom()!= $tmp['nom']) { $update->add(ClientPeer::NOM, $tmp['nom']);} if($this->utilisateur->getPrenom()!= $tmp ['prenom']){ $update->add(ClientPeer::PRENOM, $tmp['prenom']);} if($this->utilisateur->getSociete()!= $tmp ['societe']){ $update->add(ClientPeer::SOCIETE, $tmp['societe']);} if($this->utilisateur->getAdresse()!= $tmp ['adresse']){ $update->add(ClientPeer::ADRESSE, $tmp['adresse']);} if($this->utilisateur->getCodepostal()!= $tmp ['codepostal']){ $update->add(ClientPeer::CODEPOSTAL, $tmp ['codepostal']);} if($this->utilisateur->getVille()!= $tmp ['ville']){ $update->add(ClientPeer::VILLE, $tmp['ville']);} if($this->utilisateur->getMotdepasse()!= $tmp ['motdepasse']){ $update->add(ClientPeer::MOTDEPASSE, $tmp ['motdepasse']);} if($this->utilisateur->getTelephone()!= $tmp ['telephone']){ $update->add(ClientPeer::TELEPHONE, $tmp ['telephone']);} $update->add(ClientPeer::DATEMAJ,date("Y-m-d")); $update->add(ClientPeer::SESSIONID,'true'); $con = Propel::getConnection(); BasePeer::doUpdate($c, $update, $con); }else{ $this->fclient->save(); } $this->body = "compte utilisateur : ".$this->fclient- >getValue('email')."<br/>"; $this->body .="Votre mot de passe : ".$this->fclient- >getValue('motdepasse')."<br/>"; //$this->SendEmail($body,$this->fclient->getValue ('email')); $this->redirect('user/submit?'.http_build_query($this- >fclient->getValues())); } } } } [CODE] Bon certes, cela n'est pas total académique fun up to date symfony, mais comme aurais dit mon tuteur faut'q ca tourne Bref faut faire un bel update à la main ( confère site de propel ) olivier On 10 août, 14:03, nathieb <thiebaut.oliv...@gmail.com> wrote: > Bonjour, > > J'utilise symfony avec propel 1.1.7, j'utilise la notion de formulaire > et la mise à jour est impossible. > > public function executeCreate($request){ > le client existe 'il ? > $c = new Criteria(); > $tmp = $request->getParameter('client'); > $c->add(ClientPeer::EMAIL,$tmp['email']); > $this->utilisateur = ClientPeer::doSelectOne($c); > cela fonctionne mais bizarrement l'id disparaît dans le cas de > la mise à jour ??? > > $this->fclient = new ClientForm($this->utilisateur); > if ($request->isMethod('post')){ > $this->fclient->bind($request->getParameter('client')); > if ($this->fclient->isValid()){ > if($user && ($user->getMotdepasse()!='default')){ > $this->error = "La création de votre compte est > impossible, veuillez contacter PhaConcept"; > }else{ > $this->fclient->save(); > $this->body = "compte utilisateur : > ".$this->fclient->getValue('email')."<br/>"; > > $this->body .="Votre mot de passe : > ".$this->fclient->getValue('motdepasse')."<br/>"; > > //$this->SendEmail($body,$this->fclient->getValue > ('email')); > //$this->redirect('user/submit?'.http_build_query > ($this->fclient->getValues())); > } > } > } > } > > et je me retrouve avec > > UPDATE client SET ID = NULL,NOM = 'rrrrrrrrrrr',PRENOM = > 'rrrrrrrrr',MOTDEPASSE = '55555555',SOCIETE = 'rrrrrrrrrrr',ADRESSE = > 'rrrrrrrrrrrr',CODEPOSTAL = 44444444,VILLE = 'rrrrrrrrr',TELEPHONE = > '4444444',DATECREATION = '2009-08-10',DATEMAJ = '2009-08-10' WHERE > client.ID IS NULL > > il faudrait forcer l'id ou l'email car c'est l'email qui me sert de > référence ?? > > une idée ? > > olivier --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr" de Google Groupes. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse symfony-fr@googlegroups.com Pour résilier votre abonnement à ce groupe, envoyez un e-mail à l'adresse symfony-fr+unsubscr...@googlegroups.com Pour afficher d'autres options, visitez ce groupe à l'adresse http://groups.google.com/group/symfony-fr?hl=fr -~----------~----~----~----~------~----~------~--~---