2010-02-07 7 views
0

Ma fonction de rappel des règles de validation n'est pas appelée. Les autres règles de validation de ce champ sont appelésLe rappel de validation CodeIgniter n'est pas appelé

$rules[‘login_name’] = “required|max_length[12]|alpha_dash|callback__check_login_name”; 
function _check_login_name($login_name) { 
    echo "here"; // DOESNT WORK 
} 

Ainsi, dans la ligne ci-dessus, nécessaire, max_length, alpha_dash sont appelés, mais le rappel est pas. Merci!

+0

Qu'en est-il de mourir («ici»); au lieu? Peut-être que l'écho est appelé, mais vous ne le voyez pas. – stef

Répondre

0

Pour les tests, essayez ceci au lieu de l'écho:

function _check_login_name($login_name) { 
    $this->form_validation->set_message('_check_login_name', 'The callback was called.'); 
    return FALSE; 
} 

par le callbacks entry in the CI manual: « Si votre rappel retourne autre chose qu'un booléen VRAI/FAUX on suppose que les données sont votre formulaire nouvellement traitées Les données."

+0

La valeur du retour ne devrait pas avoir d'influence sur le fonctionnement de l'écho, à moins qu'il ne l'appelle en quelque sorte à l'intérieur de la vue ... – cwallenpoole

1

Il se peut que la méthode ne soit pas lisible en dehors de la portée. Cela fonctionne-t-il lorsque vous appelez simplement _check_login_name manuellement (depuis l'extérieur de la classe)? Si ce n'est pas le problème, alors avez-vous essayé de placer des échos dans le dossier système Form_validation.php? Placez une série après la ligne 581. Après cela, plus de code sera nécessaire afin de donner plus d'aide.

+0

Les callbacks form_validation() CI ne sont pas appelés dans les bibliothèques, ils doivent être dans un contrôleur. – stef

+0

@stef CYS. CI n'utilise pas debug_backtrace pour restreindre où et comment le code est exécuté. – cwallenpoole

Questions connexes