is_unique dans codeigniter pour fonction d'édition
j'ai , si je m en mesure de faire la validation de valeur unique en ajouter de nouvelles fonctions comme la
$this->form_validation->set_rules('email','Email','required|valid_email||is_unique[users.Email]');
son travail, mais en fonction d'édition, sa ne fonctionne pas..j'ai écrit en fonction de rappel pour vérifier e-mail unique.
c'est le code que j'ai écrit en fonction d'édition
$this->form_validation->set_rules('email','Email','required|valid_email|callback_check_email');
function check_username($email)
{
$return_value = $this->user_model->check_email($email);
if ($return_value)
{
$this->form_validation->set_message('email_check', 'Sorry, This username is already used by another user please select another one');
return FALSE;
}
else
{
return TRUE;
}
}
et user_model
function check_mail($email)
{
$sql = "SELECT users.Email
FROM users
WHERE
$email = users.Email
";
$result = $this->db->query($sql)->result_array();
return $result;
}
je ne suis pas en mesure de valider l'e-mail unique
le nom de la fonction dans votre user_model est différent de celui qui est appelé dans le contrôleur. si ce n'est pas une faute de frappe je pense que c'est ça le problème. sinon, je pense que Arun la réponse va fonctionner, mais c'est pas très propre d'avoir fonctionnement de base de données dans le contrôleur (OMI)
utilisez la fonction de rappel sur les règles de mise à jour
utilisez la fonction de rappel sur les règles de mise à jour
OriginalL'auteur webpic | 2014-12-23
Vous devez vous connecter pour publier un commentaire.
Essayer ce code dans votre contrôleur (modifier la vue)
c'est une solution mais pas une bonne idée si is_unique seront utilisés dans de nombreux cas
J'ai downvoted parce que la solution ne couvre que le vrai problème. Cela signifie que lors de la modification du champ, vous pouvez utiliser n'importe quel autre e-mail actuel aussi longtemps que lors de la création, vous avez utilisé un genre unique.
OriginalL'auteur Arun
OriginalL'auteur Ahmad Tarawneh
Solution Simple, inspiré par is_unique code de CodeIgniter.
Avertissement: ne fonctionne que si l'identifiant de la ligne dans la base de données est le cas typique de "id". Bien que, ce code peut être adapté facilement.
Changement is_unique à edit_unique, et de les enchaîner l'id de la ligne que vous êtes en train de modifier comme ceci:
Ensuite, allez à l'application/les bibliothèques de dossier et de créer MY_Form_validation.php avec ce code:
Ensuite modifier ce fichier: application/system/language/english/form_validation_lang.php
Et ajouter ce code à la fin du fichier:
😀
OriginalL'auteur DrPollit0
Supposons que le système de vous fournir, à vous de mettre à jour votre nom d'utilisateur dans l'application:-
Fichier >> config/form_validation.php
Fichier >> controller/Users.php
OriginalL'auteur Aman Maurya
Comme ça, c'est plus souple:
OriginalL'auteur user3691697
Supprimer la double || et le lieu unique | juste avant is_unique et votre nom de la fonction
check_username doit être le nom que vous avez donné juste après callback_ signifie qu'il doit être check_email dans votre cas.
Je suis juste à l'aide de la base de l'utilisation du site, comme poser des questions, répondre, et elle n'exige pas de réputation du tout comme par Réputation de la documentation.
OriginalL'auteur N.S
OriginalL'auteur Jasim Juwel