Bonjour à tous.
Voila, j'ai un souci avec un validator. j'avoue que je me perd et je
ne sais pas ou cela bloque. j'ai dejà eu ce problème et je ne sais
comment le régler.
Je m'explique :
J'ai deux champs ( "Téléphone" et "email" ) dans un formulaire.
Je désire que l'un ou l'autre ou les deux soit renseigné.
Je ne peux donc pas utilisé l'attritbut "required" dans mon ".yml".
j'ai donc essayé de rajouter un custom validator mais cela ne
fonctionne pas.
Je suis sur que j'ai fait une erreur de configuration ou que je me
trompe complétement dna sla facon de gérer cela.
Voici mon fichier ".yml":
-----------------------------------
email:
myAnnonceContactValidator:
atLeastOne: Vous devez indiquer un email ou un numéro de
téléphone afin d'être joignable.
-----------------------------------
Voici mon fichier "myAnnonceContactValidator.php"
----------------------------------------------------------------------------
<?PHP
class myAnnonceContactValidator extends sfValidator {
public function initialize ($context, $parameters = null) {
// var_Export($parameters);exit;
// Initialize parent
parent::initialize($context);
// Set default parameters value
$this->setParameter('atLeastOne', 'Vous devez indiquer votre
numéro de téléphone et/ou votre adresse email pour cette annonce.');
// Set parameters
$this->getParameterHolder()->add($parameters);
return true;
}
public function execute(&$value, &$error) {
$tel1 = $this->getContext()->getRequest()-
>getParameter('tel1');
$email = $this->getContext()->getRequest()-
>getParameter('email');
if ( $tel1 == '' && $email == '') {
$error = $this->getParameter('atLeastOne');
return false;
}
return true;
}
}
?>
---------------------------------------------------------------------------
La méthode initialize est bien appelée mais execute n'est appelée que
si tous les autres champs sont valides. Est ce normal ?
Merci d'avance pour tout eclaircissement à ce sujet.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---