J'ai une règle de validation personnalisée pour vérifier si deux mots de passe entrés sont identiques, et s'ils ne le sont pas, je souhaite avoir un message indiquant que "Les mots de passe ne correspondent pas".cakephp Message de règle de validation personnalisée
La règle fonctionne, cependant, lorsque les mots de passe ne correspondent pas, il affiche simplement le message d'erreur normal, que se passe-t-il?
var $validate=array(
'passwd2' => array('rule' => 'alphanumeric',
'rule' => 'confirmPassword',
'required' => true,
'allowEmpty'=>false));
function confirmPassword($data)
{
$valid = false;
if (Security::hash(Configure::read('Security.salt') .$data['passwd2']) == $this->data['User']['passwd'])
{
$valid = true;
$this->invalidate('passwd2', 'Passwords do not match');
}
return $valid;
}
Il dit: « Ce champ ne peut pas être laissée en blanc »
EDIT:
La chose étrange est, si je laisse l'un des champs de mot de passe vides, les messages d'erreur disent « Ce champ ne peut pas être laissée en blanc »
Cependant, si je mets quelque chose dans les deux, alors il est dit correctement « les mots de passe ne correspondent pas »
Oh je ne savais pas que vous pouvez spécifier un message d'erreur comme une option dans l'assistant de formulaire, cela simplifie beaucoup les choses! –
Il est dans le livre de cuisine - http://book.cakephp.org/view/1401/options-error. Notez que les libellés des champs 'confirm_password' et 'password' sont activés. – bancer