Ich habe ein seltsames Problem in Bezug auf Validierungen in Laravel 5.2. Ich überprüfte folgende Fragen auf Stackoverflow, aber keiner von ihnen scheint zu meinem Fall anzuwenden:
Laravel validation not showing errors
Laravel Validation not returning error
Die Sache ist, dass ich versuche, ein title
Feld zu validieren, bevor die Card
persistierenden Objekt in die Datenbank einfügen. Wenn ich das Formular wie erwartet mit einem leeren title
-Feld absende, besteht es die Validierungen nicht. Das Array $errors
wird jedoch bei Versagen der genannten Validierungen nicht gefüllt. Kann mir jemand erklären, wo ich mit diesem Code falsch liege?
/////////////////////// CONTROLLER /////////////////////
public function create(Request $request)
{
$this->validate($request, [
'title' => 'required|min:10'
]);
Card::create($request->all());
return back();
}
///////////////////////// VIEW /////////////////////////
// Show errors, if any. (never gets triggered)
@if(count($errors))
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
@endif
<form method="POST" action="/cards">
{{ csrf_field() }}
<div class="form-group">
// The textarea does not get populated with the 'old' value as well
<textarea class="form-control" name="title">{{ old('title') }}</textarea>
</div>
<div class="form-group">
<button class="btn btn-primary" type="submit">Add Card</button>
</div>
</form>
Können Sie fügen Sie Ihre 'routes.php' Datei sowie vollständige Controller-Datei? Irgendwie glaube ich, dass eine doppelte Umleitung stattfindet und Ihre '$ Fehler' nicht von einer Weiterleitung zur anderen übergehen. Oder, wenn Sie ruhige Routen verwenden, ist 'create' Methode nicht der Ort, um Ihre Speicherfunktion zu platzieren -' store' ist der Ort. –
@ GiedriusKiršys Das Problem war in der Tat in der Routes-Datei, weil ich 'Web' Middleware-Gruppe zweimal (wie die angenommene Antwort wies). Danke für den Hinweis auf erholsame Routen, wird es im Hinterkopf behalten. –