2016-10-24 2 views
4

Meine Formularvalidierung zeigte keine Fehler auf meiner Route posts/create an. Ich googeln die Lösung und fand, dassFormularvalidierung zeigt keine Ergebnisse auf Laravel an

Route::group(['middleware' => 'web'], function() { 
    Route::resource('/posts','PostsController'); 
}); 

kann

Route::group(['middlewareGroups' => 'web'], function() { 
    Route::resource('/posts','PostsController'); 
}); 

ich das getan hätte geändert werden, und das Problem ist gelöst. Ich möchte fragen, ob dies als eine gute Praxis angesehen wird, um es so zu ändern?

Auch wenn ich diese Zeile aus meinem Weg am Entfernen es funktioniert:

Route::group(['middleware' => 'web'], function() { 

Kann mir jemand sagen, was tatsächlich geschieht?

Antwort

0

Ein Grund kann sein, dass web Middleware in Ihrem Fall zwei Mal gilt. Laravel fügt standardmäßig die Web Middleware in app/Providers/RoutesServiceProvider.php hinzu und fügt sie wieder in Ihre routes.php ein. Probieren Sie es aus, indem Sie die web Middleware aus Ihrer routes.php entfernen.

+0

Ja, es funktioniert, nachdem ich sie entfernt habe. Danke für die Antwort. Ich habe Zweifel ... Wenn wir Kernel betrachten dann "web =>" befindet sich in "geschützt $ middlewareGroups "und nicht in" $ middleware "..why? – Saiiif

+0

Weil Web eine Gruppe ist, die aus mehreren anderen Middleware besteht, müssen wir "protected $ middlewareGroups" verwenden, ansonsten haben wir "protected $ middleware" für einzelne Middleware verwendet. –

+0

oh ok Ich habe es danke für die Antwort – Saiiif

0

Nun, Laravel 5.3 Dokumentation erklärt es im Detail. Hier ist der Link. https://laravel.com/docs/5.3/middleware#middleware-groups

Aber um Ihre Frage zu beantworten, diese Zeile:

Strecke :: Gruppe ([ 'Middleware' => 'Web'], function() {

nicht erlauben Sie jeder Anfrage Zugriff auf die Routen innerhalb nur, wenn sie eine Bedingung überprüfen, die innerhalb der "Web" -Middleware ist.

So funktioniert Laravel.Das Dokument gibt mehr Details über jede Komponente im Framework.

+0

Danke für die Antwort .. in meinem Fall, wenn ich gruppierte alle Routen in Strecke :: Gruppe ([ ‚Middleware‘ => ‚Web‘], function() { wurde die Anzeige nicht die Fehler auf dem Seite dann schaute ich auf den Kernel und festgestellt, dass "Web" ist eigentlich in "geschützte MiddlewareGroup". Also habe ich es in gruppiert Route :: Gruppe (['MiddlewareGroup' => 'Web'], Funktion() { War dieser Ansatz korrekt oder sollte ich ihn nicht gruppiert lassen? – Saiiif

Verwandte Themen