2010-10-09 6 views
0

Je veux créer une fonction de rappel qui est utilisé lors de la validation pour vérifier si le nom d'utilisateur/adresse e-mail est déjà dans la base de données ... problème est que je viens de cant semble le faire fonctionnerCodeIgniter problèmes de validation de rappel

Alors c'est la fonction de rappel:

function callback_username_available($username) 
{ 
    if($this->user_model->username_available($username)) 
    { 
     return TRUE; 
    } 
    else 
    { 
     $this->form_validation->set_message('username_available', 'ERROR'); 
     return FALSE; 
    } 
} 

et ceci est la logique de validation:

// setup form validation rules 
$this->load->library('form_validation'); 
$this->form_validation->set_rules('username', 'username', 'callback_username_available'); 

if($this->form_validation->run() == FALSE) 
{ 
    // validation errors 
} 
else 
{ 
    // no validation errors 
} 

Je suis à cela pendant des heures et ne savent pas ce que je fais w rong ... les deux fonctions sont dans le même contrôleur et toutes les autres règles de validation standard fonctionnent très bien.

Même lorsque je mets la fonction de rappel à juste retourner FALSE, il valide toujours le nom d'utilisateur.

Des idées gars ... its me conduire le mur au moment: S

Répondre

5

invoquer un rappel dans CI vous n'avez pas besoin de nommer la fonction « callback_ my_function » - ce qu'il serait apparaît est automatiquement ajouté.

cela devrait fonctionner:

function username_available($username) 
{ 
    if($this->user_model->username_available($username)) 
    { 
     return TRUE; 
    } 
    else 
    { 
     $this->form_validation->set_message('username_available', 'ERROR'); 
     return FALSE; 
    } 
} 

// set the rule 
    $this->form_validation->set_rules('username', 'Username', 'callback_username_available'); 

// lets do this ~ 

if ($this->form_validation->run() == FALSE) 
{ 
    $this->load->view('myform'); 
} 
else 
{ 
$this->load->view('formsuccess'); 
} 

pour clarifier en appelant votre fonction "callback_username_available", CI tente de trouver

callback_callback_username_available() qui bien sûr n'existe pas.

+0

Excellent ... vous êtes un compagnon de génie. Merci pour l'aide: D – Quigley

0
// setup form validation rules 
$this->load->library('form_validation'); 
$this->form_validation->set_rules('username', 'username', 'callback_callback_username_available'); 

if($this->form_validation->run() == FALSE) 
{ 
    // validation errors 
} 
else 
{ 
    // no validation errors 
} 
+0

callback_ est la méthode pour appeler la validation ou la fonction à la validation .le vous devez commencer par callback_ et votre fonction comme callback_callback_username_available –

Questions connexes