Meilleure façon de nettoyer une valeur avant validation

Bonjour.

Voici mon problème:

Je souhaite nettoyer mes valeurs de modèle avant de valider celui-ci.

Par exemple, j’ai un champ ISBN que je souhaite nettoyer des caratères inutiles (tirets, espaces, lettres, etc).

J’ai trouvé 2 façons de faire:

  • Utiliser la fonction beforeValidate

  • Utiliser une règle (rule, ou validation, si vous voulez) custom

La première façon n’est pas super à mon avis, car il faut renvoyer “true” pour que la validation continue… Donc pas vraiment fait pour ce que je veux.

La deuxième fonctionne bien. Je n’ai qu’à ne pas mettre d’erreur et ça passe comme dans du beurre. En plus, je peux la placer dans l’ordre que je veux dans ma liste de règles de validation…

Mais je me demandais s’il existe un moyen plus efficace ou plus propre de faire ça. Bien que je pense que la solution de la règle de validation soit, pour l’instant, la plus propre et la plus pratique.

Merci ;)

Salut AsakuraYoh,

non seulement l’utilisation d’une règle est la meilleure solution, mais en plus, Yii a déjà prévu le coup !! … et oui, il existe le validator CFilterValidatorqui est justement dédié à ce type de traitement.

Donc 2 fois “oui” pour ta solution ;)

8)

Oh. Ça m’a complètement passé sous le nez, ce filtre :P j’avais créé mon propre filtre pour ‘trim’, je vais pouvoir supprimer ca XD

Merci beaucoup!