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 symfony-fr@googlegroups.com
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse symfony-fr+unsubscr...@googlegroups.com
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à