Alors tu peux faire ces traitements dans doUpdate() qui permet de contrôler comment sont remplis les champs.
Mais sinon, ne devrais-tu pas embarquer les formulaires si tu traites plusieurs Model (Table) dans ton formulaire ? Ce serait peut-être plus propre, tu gèrerais mieux les doUpdate(). -----Message d'origine----- De : [email protected] [mailto:[email protected]] De la part de Cyril FLIELLER Envoyé : jeudi 24 mars 2011 09:53 À : [email protected] Objet : Re: [symfony-fr] [Form] function save() Mais dans ce formulaire, je ne permets pas à l'utilisateur de tout remplir, il y a des champs que je rempli au traitement du formulaire moi même. Cyril FLIELLER Le 24 mars 2011 09:48, alex baron <[email protected]> a écrit : Il vaut mieux utliser la méthode doSave. De plus si tes relations sont bien déclarées et tes objets identifiés dans la config du formulaires, symfony te fera la sauvegarde correctement. Alexandre Baron Le 24 mars 2011 09:32, Cyril FLIELLER <[email protected]> a écrit : Je n'arrive pas à comprendre comme sauvegarder les données d'un formulaire dans la database avec doctrine. Mon formulaire ne contient pas que les informations d'une seule table, mais de plusieurs, je dois donc traiter mes données afin de créer les (4) enregistrements : public function save($con = null){ try{ // ajout agent $curAgent = new CcPerson(); $curAgent->setFirstname($this->values['firstname']) ->setLastname($this->values['lastname']) ->setGender($this->values['gender']) ->setEmail($this->values['email']) ->setArrivaldate($this->values['arrivaldate']) ->setDeparturedate($this->values['departuredate']) ->save($con); $curAgentId = $curAgent->getId(); // member group foreach($this->values['membergroup_list'] as $curGroupId){ $curMG = new CcMemberGroup(); $curMG->setPersonId($curAgentId); $curMG->setGroupId($curGroupId); $curMG->save($con); unset($curMG); } // solde congé $congesCredit = new CcCredit(); $congesCredit->setYear($this->values['exerciceConges']) ->setValue($this->values['creditConges']) ->setPersonId($curAgentId) ->setAbsencetypeId(1) ->setCcomment("Arrivée au laboratoire") ->setCreatedAt(date('Y')) ->save($con); // solde fractionnement $fracCredit = new CcCredit(); $fracCredit->setYear($this->values['exerciceFractionnement']) ->setValue($this->values['creditFractionnement']) ->setPersonId($curAgentId) ->setAbsencetypeId(2) ->setCcomment("Arrivée au laboratoire") ->setCreatedAt() ->save($con); $con->commit(); } catch (Exception $e){ $con->rollBack(); throw $e; } return $curAgent; } Mais j'ai des erreurs ! Cyril FLIELLER -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected] <mailto:symfony-fr%[email protected]> . Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected] <mailto:symfony-fr%[email protected]> . Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr
