Bonjour à tous !

Voilà j'essaye de créer une régle de validation qui consiste à empêcher une certaine chaîne de caractère à l'intérieur d'un textarea. En gros j'aimerai faire quelque chose de ce genre :

var $validate = array(
    'message' => array(
        'rule' => '!= Saisissez votre commentaire',
        'required' => true,
        'allowEmpty' => false,
        'message' => 'Vous devez absolument saisir votre commentaire.'
    )
);

Mais bien entendu, cela ne fonctionne pas !
Merci de votre aide ;)

4 réponses


Flohw
Réponse acceptée

ha mais j'avais pas remarqué ! c'est le deuxieme plus savant du site qui pose la question !! :p (je charie hien !)
alors, dans la donc, j'ai trouvé trois trucs qui peuvent t'aider : equalTo : 'rule' => array('equalTo', 'test'), si la valeur est différente de test alors il y a erreur et on affiche le message en dessous du champ.
Ensuite, il y a inList : 'rule' => array('inList', array('test1', 'test2')), si la valeur n'est pas dans la liste alors il y a une erreur et meme speach qu'au dessus
Enfin, celle qui je crois vas te concerner : comparison : 'rule' => array('comparison', '==', 'test') il y a une erreur si la valeur n'est pas egale à test alors il y a une erreur, tu peux aussie mettre 'equal to', 'not equal to' à la place de '==' et tous les autres : '>=', '<='...

en esperant que c'est bien ca que tu voualis ;)

fais

var $validate => array (
'message' => array('rule' => array('nomFonc', $param), [le reste de ta regle]
// là tu fais la fonction qui est appelée :
function nomFonc($check, $param)
{
    return $param != 'valeur';
}

voila :)
le parametre $check est obligatoire, et tu modifie $param pour avoir ta variable
il y a une autre maniere plus simple dans les regles predefinies de cake je crois regarde sur la doc, si ca n'y est pas, cette astuce devrais marcher ;)

mespeche
Auteur

Merci Flohw mais je connais déjà ce moyen de faire, justement j'aimerai savoir si il y a moyen de le faire directement grâce à cakephp comme quand on dit 'notEmpty'

mespeche
Auteur

Et oui comme quoi on ne sait jamais tout ! ;) Merci c'est la bonne réponse ! +1 pour toi.