1

Ich habe eine neue Laravel-Installation, Version 5.2.41, und möchte Validierungsfehler auf meine Vorlage ausgeben. Ziemlich grundlegende Sachen.Validierungsfehler werden nur angezeigt, wenn keine Web-Middleware in Laravel verfügbar ist

In meinem app.blade.php:

@if ($errors->any()) 
    <div class="alert alert-danger"> 
     @foreach ($errors->all() as $error) 
      {{ $error }}<br> 
     @endforeach 
    </div> 
@endif 

Meine routes.php Datei:

Route::group(['as' => 'backend', 'middleware' => ['web', 'auth'], 'namespace' => 'Backend', 'prefix' => config('settings.admin.slug')], function() {  
    Route::get('/admin_users/edit/{id}', ['uses' => '[email protected]', 'as' => 'admin.users.edit']); 
    Route::post('/admin_users/edit/{id}', '[email protected]'); 
}); 

Wie Sie ich bin mit dem web Middleware hier sehen können.

Wenn in dieser Konfiguration die $errors Variable ist eingestellt, wenn es sein sollte, aber es ist nur ein leeres Array.

Wenn ich die web Middleware entfernen, dann funktioniert alles wie es soll. Das erscheint mir sehr merkwürdig und nicht erwartetes Verhalten. Die offensichtliche Lösung ist, die web Middleware einfach nicht zu enthalten, aber ich weiß nicht, welche Nebenwirkungen das haben könnte.

+0

vielleicht müssen Sie den Code von Web-Middleware einfügen, damit wir sehen können, was Web-Middleware tat. –

+0

Es ist die integrierte Web-Middleware, also gibt es keinen Code. Es sind einfach die Klassen, die in der Kernel.php enthalten sind und die mit Laravel ausgeliefert werden: https://github.com/laravel/laravel/blob/master/app/Http/Kernel.php – Mike

+0

Standardmäßig sind alle Routen von der ' Web 'Middleware. Wenn Sie es erneut hinzufügen, werden Ihre Fehler möglicherweise behoben. Ist die andere Nacht hier reingelaufen. Führen Sie php artisan route aus: Liste mit CLI aus Ihrem Projektverzeichnis, um Ihre Routen und die Middleware zu sehen, hinter der sie sich befinden. –

Antwort

1

Alles hängt von der Version von Laravel-Anwendung ab, die Sie verwenden (verwechseln Sie es nicht mit Laravel-Framework).

Blick auf app/Providers/RouteServiceProvider.php Datei, um zu überprüfen, ob Sie dort web Middleware in dieser Standarddatei angewandt wie https://github.com/laravel/laravel/blob/master/app/Providers/RouteServiceProvider.php

Wenn Sie das tun, sollten Sie nicht diesen in Ihren routes.php Dateien verwenden, da Sie jetzt web Middleware duplizieren und es wird dazu führen, solche Probleme.

So können Sie entweder Ihre alle Routen ändern oder entfernen Sie diese web Middleware von app/Providers/RouteServiceProvider.php Datei

+0

Mir war klar, dass ich definitiv die Web-Middleware haben wollte, also zu wissen, dass sie immer als Standard da ist und ich sie kopierte, ist die Beruhigung, die ich brauchte. Vielen Dank. Sehr informative Antwort – Mike