validation des nombres francaises

Bonjour,

"je suis très débutant en yii"

j’ai besoin de modifier la validation des nombres pour qu’ils soient acceptés avec virgule et non pas avec point (version anglaise) mais sans modifier CNumberValidator.php (probleme en cas de maj)

ça parait être simple mais je sais pas quoi modifier ou ajouter

Salut Ahmed,

il semble que le CNumberValidator ne permette pas de configurer quel doit être le caractère séparateur, il utilise toujours le point ‘.’.

La première solution que je vois serait d’écrire ton propre Validateur qui dériverait de CNumberValidator et utiliserait sa propre expression régulière dans laquelle le point serait remplacé par la virgule.

C’est un peu brutal, mais pour l’instant je ne vois pas mieux ;)

ciao

B)

… ou alors plus simplement, sans avoir besoin de créer une nouvelle classe et tout, tu peux rajouter une Méthode dans ton modèle pour faire la validation de ce format numérique (doc).

ciao

8)

Salut, merci Raoul, c’est ce que j’ai fait (la deuxieme methode) elle marche nikel… mais le probleme que je veux pas l’utiliser a chaque class que j’ai besoin, je pense que yii doit être paramétrable à ce niveau, par modification de langue d’utilisation…

Salut Ahmed,

oui, j’ai pensé ça aussi, mais après avoir jeté un oeil dans le code de CNumberValidator il faut bien se rendre à l’évidence : le caractère séparateur de décimale est le point, codé en dur.

Cela étant dit, tu sera de toutes façons obligé de transformer la valeur saisie par l’utilisateur lors de la conversion numérique (parce pour le PHP, ‘1,5’ est converti en la valeur num 1), donc autant considérer la saisie utilisateur comme une chaîne, et la valider en utilisant le CRegularExpressionValidator.

ciao

B)

Oui evidament j’utlise ma fonction de validation que "on=>“validation” et avant d’enregistrer dans la base je transforme le “,” en “.” tu vois ça casse le bon developpement :s

je pense que la reponse est là doc mais j’ai pas pu encore l’utiliser

Salut Ahmed,

j’ai utilisé “l’internationalisation” dans un projet, et de ce que j’en ai compris, c’est très bien pour l’affichage (la sortie) mais il n’y a rien pour l’entrée … donc si tu trouves qqchose, ça m’intéresse beaucoup, n’hésites pas à poster la solution ;)

ciao

B)