4

Ich habe eine Benutzer-Tabelle, die eine einzigartige Validierungsregel für E-Mail und Benutzername hat. Wenn ich versuche zu aktualisieren, ignoriere die eindeutige Validierung nicht. Bitte beachten Sie meinen Code unten.Laraval 5.4 Validierungsanfrage, Wie wird mit der einmaligen Validierung beim Update umgegangen?

UserRequest.php

public function rules() 
{ 
    return [ 
     'name' => 'required', 
     'mobile' => 'required', 
     'email' => 'required|unique:users,email'.$id, 
     'usercategory' => 'required', 
     'username' => 'required|unique:users,username'.$id, 
    ]; 
} 
+1

Sie haben '$ ID' verwendet, woher kommt es? – C2486

+0

Haben Sie das gelöst? – C2486

Antwort

0

Bitte versuchen Sie diese Sie

public function rules() 
{ 

    $id = $this->request->get('id') ? ',' . $this->request->get('id') : ''; 

    return [ 
     'name' => 'required', 
     'mobile' => 'required', 
     'email' => 'required|unique:users,email'.$id, 
     'usercategory' => 'required', 
     'username' => 'required|unique:users,username'.$id, 
    ]; 
} 
0

Sie benötigt id zu überspringen, wenn Sie für die Aktualisierung bestätigen, wie wie unten

public function rules($id='') 
{ 
    $id = $id ? ','.$id.',id':''; 
    return [ 
     'name' => 'required', 
     'mobile' => 'required', 
     'email' => 'required|unique:users,email'.$id, 
     'usercategory' => 'required', 
     'username' => 'required|unique:users,username'.$id, 
    ]; 
} 

In Laravel docs haben Sie bieten 3rd und 4th param in unique Regel

unique:table,column,except,idColumn 
+0

funktioniert nicht Ihren Code – Sandeep

+0

@Sandeep: senden Sie '$ ID' zu Regeln Funktion? – C2486

0

Man könnte so etwas wie folgt verwenden:

$id = $this->isMethod('put') ? ',' . auth()->id() : ''; 

Sie Update für

vor Zeile mit return

0

In Laravel 5.5 verwenden put Verfahren unter der Annahme, sollte folgendes tun:

use Illuminate\Validation\Rule; 

Validator::make($data, [ 
    'email' => [ 
     'required', 
     Rule::unique('users')->ignore($user->id), 
    ], 
]); 

prüfen Laravel documentaion über rule-unique.

Verwandte Themen