2015-06-11 11 views
5

Ich habe ein Benutzermodell, das eindeutige E-mail Adressen haben muss, aber ich lasse sie auch frei lassen, wenn der Benutzer keine E-Mail hat ... Ich sehe in docs Es gibt eine Möglichkeit, eine Regel für Unique und eine Ausnahme für eine ID zu machen ... aber ich bin mir nicht sicher, wie man dies erlaubt, null oder leer, aber einzigartig, wenn es nicht ist. Tut mir leid, das ist einfach, aber ich kann mir die Antwort nicht vorstellen.laravel wie man einzigartige Regel ausschließt, die leeres oder null ausschließt

public static $adminrules = 
     'email' => 'email|unique:users,email,null,id,email,NOT_EMPTY'        
    ); 

bearbeiten Es kann, dass die Regel unter Verwendung sein, ohne required genug ist, da eine Leer- oder Null Validierung in diesen Fällen passieren würde. Ich könnte einen ähnlichen Fehler haben, der dazu führt, dass ich nicht mehr als eine leere E-Mail hinzufügen kann, deshalb kann ich das nicht überprüfen.

public static $adminrules = 
     'email' => 'email|unique:users'        
    ); 
+1

ist dies, wo die 'manchmal' Regel sinnvoll wäre? – Phil

Antwort

0

Sie sollten dies versuchen:

$v->sometimes('email', 'email|unique:users,email', function($input) 
{ 
    return !empty($input->email); 
}); 

$ v ist Ihr Validator-Objekt und Sie im Grunde sagen, dass die E-Mail-Feld in Fall ist es auch eindeutig sein nicht leer sollte (es keine sein sollte Benutzertabellen-Datensatz mit diesem Wert in der E-Mail-Spalte).

Verwandte Themen