Attention, si tu fais un $form->savee() avant la validation, tu risques
d'avoir des données incorrectes dans ta base.
Et il faut faire attention à bien mettre le code là où il faut. Car quand tu
le reliras dans quelques temps tu risques de ne plus comprendre ce qui est
fait et quand.

En tout cas, si ça marche c'est déjà ça. 

-----Message d'origine-----
De : [email protected] [mailto:[email protected]] De la
part de jimpass
Envoyé : samedi 23 octobre 2010 21:48
À : Symfony-fr
Objet : [symfony-fr] Re: surcharge de la méthode save

Merci Lélio,
j'ai trouvé une autre solution,
avant la validation du formulaire, on peut modifier un champ comme ceci :

$size= $file->getSize();
$this->form->getObject()->setSize($size);
//setSize() est l'accesseur pour mon champ size en base.
$fichier = $form->save();



On 22 oct, 14:31, Lélio ML <[email protected]> wrote:
> Justement, utilise le doUpdateObject(). Cela est le bon endroit (à mon 
> avis) pour faire ce que tu souhaites faire.
>
> -----Message d'origine-----
> De : [email protected] [mailto:[email protected]] 
> De la part de jimpass Envoyé : vendredi 22 octobre 2010 14:19 À : 
> Symfony-fr Objet : [symfony-fr] Re: surcharge de la méthode save
>
> Merci Lélio, mais c'est bien dans un formulaire en fait.
>
> On 22 oct, 14:13, Lélio ML <[email protected]> wrote:> Pardon, si
c'est dans un formulaire...
>
> > -----Message d'origine-----
> > De : [email protected] 
> > [mailto:[email protected]]
> > De la part de Lélio ML Envoyé : vendredi 22 octobre 2010 14:12 À :
> > [email protected] Objet : RE: [symfony-fr] surcharge de la 
> > méthode save
>
> > Si c'est dans un document, tu peux passer par la méthode
> > doUpdateObject() qui a la responsabilité de fournir les données du
>
> formulaire à l'objet.
>
>
>
>
>
> > -----Message d'origine-----
> > De : [email protected] 
> > [mailto:[email protected]]
> > De la part de jimpass Envoyé : vendredi 22 octobre 2010 13:58 À :
> > Symfony-fr Objet
> > : [symfony-fr] surcharge de la méthode save
>
> > Bonjour,
> > J'ai créé un champ "size" dans mon modèle pour la gestion de fichiers.
> > Je souhaiterais donc renseigner ce champ automatiquement en 
> > surchargeant la méthode save() j'ai donc dans mon action cette ligne :
> >   $size= $file->getSize();
> > Pas de problème, la taille du fichier est récupérée.
>
> > Voici ma méthode save() surchargée :
> >    public function save(Doctrine_Connection $conn = null)
> >   {
> >     if ($this->isNew())
> >     {
> >       $this->setSize($size);
> >     }
>
> >     return parent::save($conn);
> >   }
> >  J'ai testé pas mal d'options, en changeant le type du champ en base 
> > (string, int etc...) , mais rien à faire, la valeur n'est pas 
> > intégrée en base et je ne sais pas ou je commets l'erreur...
>
> > --
> > 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
>
> --
> 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


-- 
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

Répondre à