2017-11-02 7 views
0

Gibt es eine Möglichkeit, Originaldaten in Anfrage zu bekommen? Ich meine, in meinem Fall möchte ich aktualisieren Benutzer im Formular validieren. Ich möchte, dass die E-Mail in E-Mails in der Datenbank eindeutig ist, mit Ausnahme der E-Mail, die der Benutzer an das Formular geschrieben hat.Laravel Formular Anfrage Validierung

+0

Dies ist perfekt möglich mit den eingebauten Validatoren: https://laravel.com/docs/5.5/validation#rule-unique – Jerodev

Antwort

1

Laravel verfügt bereits über eine Validierungsregel. Sie können eine ID des Benutzers hinzufügen, der ignoriert werden soll, und zwar unique validator.

'email' => [ 
    'required', 
    Rule::unique('users')->ignore($currentUser->id), 
] 
0

habe ich so etwas wie dieses:

'email' => ['sometimes', 'email', 'unique:users,email,'.$user->getKey().','.$user->getKeyName().',deleted_at,NULL', 'string'], 

Nicht sicher, ob es die beste Lösung ist, aber funktioniert. Ich mag es irgendwie nicht, weil die $user auf versteckte Eingabe von der Anfrage basiert.

0

Sie können es tun liks dies:

'email' => 'unique:users,email,'.$user->id 

Die Benutzer-ID Sie die Aktualisierung des Datensatzes zu halten ermöglicht aber die eindeutige Einschränkung auf E-Mail zu erhalten. Sie benötigen kein verstecktes Eingabefeld für $ user-> id btw.

+0

Ich mache, weil Formular Ich bin bind wie folgt aktualisiert: '{!! Form :: model ($ customerAddress, ['route' => 'benutzer.update', 'class' => 'formularformular-horizontale form-benutzerdaten']) !!} 'und ich kann nicht auf' $ this- zugreifen > Benutzer in der Anfrage. – Epsilon47

Verwandte Themen