Ich benutze codeigniter 3.Ich habe ein E-Mail-Feld in Form und mit required|callback_is_email_exist rules
auf E-Mail. Wenn ich das E-Mail-Feld leer lasse, wird anstelle der erforderlichen Nachricht eine Rückrufnachricht angezeigt. Ich hatte an Codeigniter 2 gearbeitet, es zeigt genau "erforderlich" Nachricht, CI3 Form Validierung nicht ausgeführt Regeln in der Reihenfolge, wenn Callbacks verwendet werden. Im Anschluss an mein Codecoderigniter3 Formular-Validierung Callback-Funktion ruft unnötig
Ausblick: welcome_message
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to CodeIgniter</title>
</head>
<body>
<?php echo validation_errors(); ?>
<?php echo form_open('Welcome'); ?>
<h5>Username</h5>
<input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" />
<div><input type="submit" value="Submit" /></div>
</form>
</body>
</html>
Controller: welcome.php
public function index()
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('email', 'Email', 'required|callback_is_email_exist');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('welcome_message');
}
else
{
echo 'success';
}
}
public function is_email_exist($str)
{
// code to check email exist in databse here
if (is_email_exist($str)
{
return TRUE;
}
else
{
$this->form_validation->set_message('is_email_exist', 'Email Does not exist');
return FALSE;
}
}
erwartete Ausgabe
E-Mail eingereicht
benötigt wird erwartet
Codeingiter 3 in der Regel auszuführen sequence.If gelingt es dann nächste executes.In diesem Fall, wenn ich E-Mail-Feld leer lassen Sie es führt Callback unnötigerweise.So zeigt es falsche Nachricht.Es sollte angezeigt werden E-Mail-Feld ist erforderlich, anstatt E-Mail existiert nicht.
Vielen Dank für Ihr Feedback.
Dank Erstellen Rückruf Code setzen in MY_form_validation hat für mich gearbeitet :) –