Bonjour,
J'essaie de sauvegarder le nom original d'un fichier uploadé. Le validator standard renomme les fichiers avec un nom unique, ce qui est une bonne chose. Mais pour plus de lisibilité pour l'utilisateur, je veux aussi stocker le nom original (qui n'est pas unique).
Après quelques recherches, je comprends bien qu'il faut utiliser la méthode getOriginalName() sur un objet sfValidatedForm.
Mais en fait, je suis un peu paumé sur comment mettre tout ça en musique.
(1) Est-ce que je peux accéder à l'info dans la méthode processForm de l'actionClass ? Si oui, comment ? En tant que débutant, je ne sais pas à quoi correspond le $this dans cette méthode :
Si je fais :
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 protected function processForm(sfWebRequest $request, sfForm $form) { $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); if ($form->isValid()) { $foo='bar'; $fichier = $form->save(); $this->redirect('fichier/edit?id='.$fichier->getId()); } }
et dans le template un echo $foo, ça ne marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 protected function processForm(sfWebRequest $request, sfForm $form) { $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); if ($form->isValid()) { $this->foo='bar'; $fichier = $form->save(); $this->redirect('fichier/edit?id='.$fichier->getId()); } }
(2) Est-ce que je peux surcharger la méthode save() du modèle ? Là pareil, je ne sais pas quoi écrire :
Pour info, mon schema est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 class Fichier extends BaseFichier { public function save($con = null) { ???? } }
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Fichier: actAs: { Timestampable: ~ } columns: nom: { type: string(255) } nom_original: { type: string(255) } date: { type: date, notnull: true }
Partager