Le plus simple c'est peut-être de passer par un hook preDelete() ou
postDelete(). C'est tout simple, il n'y a rien à d'autre à faire que
d'écrire ton code qui supprimera le fichier dans une des 2 méthodes.

http://www.doctrine-project.org/documentation/manual/1_1/en/event-listeners#record-hooks


On mon, 2009-08-24 at 04:52 -0700, naholyr wrote:
> Un behavior ne serait-il pas le plus adapté pour ça ?
> 
> On 23 août, 15:24, "@rsenik" <[email protected]> wrote:
> > Pour ma part , je ne touche jamais au delete du model, ni même le
> save
> > afin de garder cette fonction pour ce qu'elle est destiné faire.
> > Je te conseil de redéfinir les actions plutôt.
> >
> > On 20 août, 10:17, eddie <[email protected]> wrote:
> >
> > > Bonjour j'utilise sf1.2 et doctrine et l'admin generator pour mon
> > > backend.
> > > J'ai un formulaire I18n avec un champ image pour y indiquer le nom
> > > d'un fichier.
> > > Par défaut quand on supprime un enregistrement l'image n'est pas
> > > effacé ce qui est bien dommage.
> >
> > > J'ai mis en place dans lib/model/doctrine/Toto.class.php le code
> > > suivant :
> >
> > > public function delete(Doctrine_Connection $conn = null)
> > > {
> > >   $filename = $this->getImage();
> > >   $filepath = sfConfig::get('sf_upload_dir').$filename;
> > >   if (file_exists($filepath)) unlink($filepath);
> >
> > >   return parent::delete($conn);
> >
> > > }
> >
> > > Cette fonction marche, elle supprime en même temps les données en
> bdd
> > > et l'image par contre si j'utilise le batch_action batchDelete les
> > > données sont effacés mais pas les images.
> >
> > > J'ai repéré dans le cache de actions.class.php les fonctions
> > > suivantes :
> >
> > > public function executeDelete(sfWebRequest $request)
> > > protected function executeBatchDelete(sfWebRequest $request)
> >
> > > Pouvez-vous me dire quel est la meilleur façon de procéder et la
> plus
> > > éthique pour que sa marche dans tous les cas de figures.
> >
> > > Merci d'avance ++
> --~--~---------~--~----~------------~-------~--~----~
> 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 [email protected]
>  Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
> l'adresse [email protected]
>  Pour afficher d'autres options, visitez ce groupe à l'adresse
> http://groups.google.com/group/symfony-fr?hl=fr
> -~----------~----~----~----~------~----~------~--~---
> 

Attachment: signature.asc
Description: This is a digitally signed message part

Répondre à