2017-05-01 2 views
0

Ich hatte zuvor eine Frage here in Bezug auf die Einrichtung der In-Place-Bearbeitung mit Laravel 5 und AJAX gestellt. Ich hatte es nicht aktualisiert, weil ich es offline geschafft hatte herauszufinden, was damit nicht stimmte.Laravel 5: Validieren von Bearbeitungen vor Ort

Während die Tabelle in der Lage ist, Benutzerzeilen direkt zu bearbeiten, versuche ich nun, eine Validierung hinzuzufügen, die darauf abzielt, Laravels eingebauten Validator zu verwenden. Aus irgendeinem Grund scheint es jedoch nicht zu funktionieren. Wenn ich versuche, den fehlgeschlagenen Validator durch den JSON zurückzugeben, spuckt er jeden möglichen Fehler aus, nach dem ich suche. Es ist so, als ob der Validator jede Eingabe als leer behandelt, was keinen Sinn ergibt, da der Rest der Funktion die Eingaben wie vorgesehen einnimmt.

Der Code-Schnipsel in meiner vorherigen Frage ist meist noch relevant, aber es hat Updates gewesen zu HomeController.php, wie weiter unten zu sehen ist:

public function updateTable(Users $users){ 

    $user = request()->input('user'); 

    $first_name = request()->input('first_name'); 
    $last_name = request()->input('last_name'); 

    $validator = Validator::make(request()->all(), [ 
     'firstName'      => 'required|alpha', 
     'lastName'      => 'required|alpha' 
    ], [ 
     'firstName.required'   => 'You need to give a first name!', 
     'firstName.alpha'    => 'A first name can only contain letters!', 
     'lastName.required'    => 'You need to give a last name!', 
     'lastName.alpha'    => 'A last name can only contain letters!' 
    ]); 

    if ($validator->fails()) { 

     return response()->json($validator, 404); 

    } 

    $employees->editUser($user, $first_name, $last_name); 

    return response()->json($user); 

} 
+0

Es wäre nett, wenn Sie Ihre vorherige Frage aktualisiert hätten. Auch hat auf Leute geantwortet, die versucht haben, Ihnen zu helfen. – crabbly

+0

Ich gebe zu, es fühlte sich ein bisschen komisch an, weil meine mögliche Lösung sehr von dem, was vorgeschlagen wurde, abwich. Aber das ist ein guter Punkt. Die vorherige Frage wurde mit einer Weiterleitung nach hier bearbeitet. – Alexander

Antwort

0

So erkennen ich, das Problem war zweifach. Erstens, was ich versuchte, wenn der Validierer fehlschlug, war falsch. Anstatt einfach den ganzen Validator vorbei, ich musste einfach ihre Botschaften weitergeben, etwa so:

if ($validator->fails()) { 

    return response()->json($validator->messages(), 404); 

} 

Die zweite Ausgabe hatte tatsächlich mit Aufruf „Anfrage() -> alle()“ zu tun. Ich hatte angenommen, dass die erhaltene Anordnung funktioniert hätte, aber aus irgendeinem Grund nicht. Als ich ein neues Array basierend auf den Werten in "request()" erstellt habe, konnte ich die Validierergebnisse erhalten, die ich erwartet hatte.