2016-03-23 7 views
0

Guys nach CakePHP3 Dokumentation zur Validierung Ich versuche mein E-Mail-Feld zu validieren, aber diese Validierung funktioniert nicht gut.CakePHP 3 E-Mail Validierung

Wie kann dies gültige E-Mail sein?

Formular erfolgreich submited wird und die Daten werden in der Datenbank gespeichert. Ich denke, diese Validierung ist nicht gut bcs ich sehe nie in meiner Live-E-Mail-Adresse wie oben.

return $validator->requirePresence('email') 
      ->notEmpty('email', __('Email is required field')) 
      ->add('email', 'validFormat', [ 
       'rule' => 'email', 
       'message' => 'E-mail must be valid' 
      ]); 
+1

Nur weil man sie nie gesehen hat nicht bedeuten, dass sie nicht gültig sind. Was Sie hier zeigen, ist absolut gültig. ** https: //en.wikipedia.org/wiki/Email_address#Local_part** – ndm

+0

Dies sind gültige E-Mail-Adressen, damit der Validator korrekt ist! – drmonkeyninja

Antwort

4

Hier können Sie reguläre Ausdrücke finden, dass Kuchen für E-Mail-Validierung verwendet:

https://github.com/cakephp/cakephp/blob/master/src/Validation/Validation.php#L567

Wenn es Sie können jederzeit Ihre eigene liefern nicht Ihren Anforderungen gerecht werden.

Werfen Sie einen Blick auf E-Mail-Gültigkeitsregel in CakePHP Quellen:

public static function email($check, $deep = false, $regex = null) 

Sie können Ihren eigenen regulären Ausdruck wie folgt liefern:

$validator->add("email", "validFormat", [ 
    "rule" => ["email", false, $yourRegexp], 
    "message" => "Email must be valid." 
])