2017-01-10 8 views
2

i individuelle Anfrage in Laravel habe .. Dies ist der Codeeindeutiger Wert mit benutzerdefinierter Anfrage Laravel 5.3

public function rules() 
{ 
    if($this->ajax()) 
    { 
     return []; 
    } 
    else 
    { 
     return 
     [ 
      'username'=> 'required|min:3|max:30|unique:users', 
      'password'=> 'required|min:6', 
      'email'=>'required|min:3|max:35|unique:users', 
      'permission'=>'required', 
      'phone'=>'required', 
      'division'=>'required', 
     ];   
    } 

} 

und ich brauche, um die aktuelle ID zu ignorieren ab Entwertung Ich habe versucht, diesen

public function rules() 
{ 
    if($this->ajax()) 
    { 
     return []; 
    } 
    else 
    { 
     return 
     [ 
      'username'=> 'required|min:3|max:30|unique:users,id'.$this->id, 
      'password'=> 'required|min:6', 
      'email'=>'required|min:3|max:35|unique:users', 
      'permission'=>'required', 
      'phone'=>'required', 
      'division'=>'required', 
     ];   
    } 

} 

aber es ignorieren den gesamten Benutzernamen aus der Validierung nicht nur die aktuelle ID ..

Antwort

2

Verwenden Sie auth()->user()->id anstelle von $this->id, um die aktuelle Benutzer-ID abzurufen.

Auch bin ich mir nicht sicher über die Syntax, die Sie beim Hinzufügen ignorierender ID verwenden. Von unique() rule docs:

:

Um den Validator anzuweisen, die ID des Benutzers zu ignorieren, verwenden wir die Regelklasse, um die Regel fließend zu definieren. In diesem Beispiel werden wir die Validierungsregeln auch als Array angeben, anstatt | zu verwenden Zeichen, die Regeln zu begrenzen:

use Illuminate\Validation\Rule; 

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

alexey im noch nicht anmelden, so Auth wird auch nicht funktionieren, was ist, wenn ich es wie Farben Abteilung mit ather Tisch tun müssen, was auch immer, wie könnte ich lasse es die ID ignorieren kommt aus die Anfrage danke –

+0

Wenn der Benutzer nicht angemeldet ist, welche Benutzer-ID möchten Sie während der Validierung verwenden? –

+0

seine benutzerdefinierte Anfrage namens öffentliche Funktion Update (UsersRequest $ Anfrage, $ ID) es funktioniert, wenn ich die normale Anfrage verwendet, aber ich muss die Validierung in sparated Anfrage wie UsersRequest setzen –