Salut à tous!
J'essaye en vain d'ajouter un Upload de CV à un mon formulaire d'ajout d'adhérent de mon appli ZF.
Le code de l'élément (dans la classe formulaire, fichier Ajouter.php...) :
Jusque la rien de bien fou.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $cv = new Zend_Form_Element_File('cv'); $cv->setLabel('Curriculum Vitæ :') ->setDestination(APPLICATION_PATH . '/../tmp/mod_adherent') ->setDescription('Veuillez sélectionner le fichier CV de l\'adhérent.<br /><b>Seul les formats pdf, doc, docx et odt sont acceptés.<br />Poids maximum du fichier : 5Mo.</b>') ->addValidator('Count', false, 1) ->addValidator('Size', false, 5000000) ->addValidator('Extension', false, 'pdf,doc,docx,odt');
Ici il faut préciser qu'a la soumission du formulaire, les valeurs sont envoyées en ajax à un controlleur en charge de les traiter, et de faire l'ajout.
La méthode de validation concernée :
$param_request est un tableau des valeurs postées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 private function formAjouterIsValid($param_request) { $list_gouvernorat = $this->gouvernoratRepository->getGouvernoratAll(); $list_delegation = $this->delegationRepository->getDelegationAll(); $list_profession = $this->professionRepository->getProfessionAll(); $list_domaineUniversitaire = $this->domaineUniversitaireRepository->getDomaineUniversitaireAll(); $f = new Adherent_Form_Ajouter(array( "data" => array( 'gouvernorat' => $list_gouvernorat, 'delegation' => $list_delegation, 'profession' => $list_profession, 'domaineUniversitaire' => $list_domaineUniversitaire ), "name" => "form_ajouter_adherent", "action" => "" )); $f->isValid($param_request); die(do_dump($f->getMessages())); //return $f->getMessages();
$param_request['cv'] = "test.xml" dans cet exemple.
Je passe le contenu des listes select lors de la création du formulaire, pas d'action puisque cette classe formulaire n'est destiné qu'a la validation et non à l'affichage...
Mon problème :
Avec ce code (et fichier test.xml), $f->isValid($param_request); retourne false, $f->getMessages() retourne... rien du tout.
La validation rate (normal) mais les messages ne sont pas ajoutés.
La doc est assez confuse. D'abord on valide, après on upload (avec receive()) par exemple). Le transfert peut aussi rater, faut tester, mais les validators de l'element File concernent bien l'étape de validation du formulaire donc $f->isValid($param_request); ???
J'ai évidement fouillé le net et essayé 35 trucs, mais j'en reviens à ça.
Je commence à croire à un bug ZF...
De l'aide pour débugger ca? Ca fait pareille chez vous???
Merci!
Partager