2016-12-13 1 views
0

Von This Antwort arbeiten Ich versuche, Abteilungsdaten zu aktualisieren. wie unten Code:Laravel eindeutige Regeln für die Aktualisierung nicht richtig

$id = Crypt::decrypt($id); 
     $rules = Department::$rules; 

     $rules['name']    = $rules['name'] . ',id,' . $id; 
     $rules['department_code'] = $rules['department_code'] . ',id,' . $id; 

     dump($rules); 

     $validator = Validator::make($data = $request->all(), $rules); 
     if ($validator->fails()) return Redirect::back()->withErrors($validator)->withInput(); 

     $department = Department::findOrFail($id); 

Aber der Validator sagt:

Der Abteilungscode ist bereits getan.

Der Name ist bereits getan.

Also, was ist falsch?

Mein rules Array ist:

public static $rules = [ 
     'name'    => 'required|unique:departments|max:255', 
     'department_code' => 'required|unique:departments|max:127', 
    ]; 

Antwort

1

Ihre $rules Array ändern wie:

public static $rules = [ 
     'name'    => 'required|max:255|unique:departments', 
     'department_code' => 'required|max:127|unique:departments', 
    ]; 

Dann können Sie es verwenden id in den Regeln anzuhängen.

+0

Ich habe Regeln geändert 'public static $ Regeln = [ \t 'name' \t \t \t \t => 'erforderlich | max: 255 | einzigartig: Abteilungen, \t 'department_code' \t =>‚erforderlich | max : 127 | einzigartig: Abteilungen, ]; '. Jetzt 'name' Regeln funktionieren gut, aber immer noch Nachricht bekommen' Die Code-Abteilung wurde bereits taken.' – Nitish

+0

Was ist der Name der Spalte für 'department_code' in der Tabelle? Wenn es etwas anderes als 'department_code' dann haben Sie als' in der Regel bieten einzigartige: Abteilungen, code'. [Dokumente] (https://laravel.com/docs/5.3/validation#rule-unique) –

Verwandte Themen