merci > -----Message d'origine----- > De : [email protected] > [mailto:[email protected]] De la part de Fabien Vauthey > Envoyé : mardi 12 mai 2009 11:33 > À : Symfony-fr > Objet : [symfony-fr] Re: prevalidator > > > Bonjour, > > J'ai aussi rencontré le problème (pas avec un input type=file > mais deux type=text), que j'ai résolu de la manière suivante : > > //Dans la méthode processForm() du controlleur sur l'objet concerné: > > protected function processForm(sfWebRequest $request, sfForm $form) > { > $params = $request->getParameter($form->getName()); > > if($params['name']=='') > $params['name']=$params['file']; > > $form->bind($params, $request->getFiles($form->getName())); > > if ($form->isValid()) [...] > > Voila. Bon courage :) > > Cordialement, > > On 12 mai, 10:26, Mailing-list Lélio <[email protected]> wrote: > > Bonjour, > > > > Voilà ce que j'aimerais faire. Dans un formulaire j'ai deux > champs : 'name' > > (input text) et 'file' (input file). J'aimerais que si le > champ 'name' > > est vide, il prenne la valeur du nom du champ 'file'. > > > > Pour ce faire, j'ai mis en place un sfValidatorSchema en > prévalidation. > > Malheureusement, ça ne fonctionne pas : mon champ 'name' > reste vide. > > J'ai l'impression que les values modifiés ne sont pas > prises en compte > > alors que le validatorSchema est bien utilisé (vérifié). > > > > //dans le DocumentForm.class.php > > Public function configure() > > { > > parent::configure(); > > //... Manipulation des widget et validator pour chaque champ > > $this->validatorSchema->setPreValidator(new > > sfValidatorSchemaDocName()); > > //les unset() nécessaires > > > > } > > > > //dans sfValidatorSchemaDocName.class.php > > protected function doClean($values) > > { > > if (is_null($values)) { > > $values = array(); > > } > > if (!is_array($values)) { > > throw new InvalidArgumentException('You must > pass an array > > parameter to the clean() method'); > > } > > if ('' == trim($values['name']) > > && isset($values['file']) > > && is_array($values['file']) > > && isset($values['file']['name'])) { > > $values['name'] = $values['file']['name']; > > } > > > > return $values; > > > > } > > > > Merci de votre aide > > > > PS : je suis avec symfony 1.2 et Propel. > > >
--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
