2016-05-22 11 views
17

Ich versuche eine Erfolgsmeldung zurück zu meiner Homepage auf Laravel zu bekommen.Laravel 5.2 Redirect zurück mit Erfolgsmeldung

return redirect()->back()->withSuccess('IT WORKS!'); 

Aus irgendeinem Grund erhält die Variable $ success nach dem Ausführen dieses Codes keinen Wert.

Der Code, den ich mit der succes Nachricht anzuzeigen:

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

    Route::get('/', function() { 
     return view('home'); 
    }); 

    Route::post('/newsletter/subscribe','[email protected]'); 
}); 

:

@if (!empty($success)) 
    <h1>{{$success}}</h1> 
@endif 

ich das Haus und Newsletter-Seite an den Web-Middleware-Gruppe in routes.php wie diese hinzugefügt haben Hat jemand eine Idee, warum das nicht zu funktionieren scheint?

Antwort

40

Sie sollten web Middleware von routes.php entfernen. Wenn Sie die Middleware web manuell hinzufügen, wird session and request related problems in Laravel 5.2.27 and higher angezeigt.

Wenn es half nicht (immer noch, halten routes.php ohne Web-Middleware), können Sie etwas anderen Ansatz versuchen:

return redirect()->back()->with('message', 'IT WORKS!'); 

Nachricht angezeigt, wenn es vorhanden ist:

@if(session()->has('message')) 
    <div class="alert alert-success"> 
     {{ session()->get('message') }} 
    </div> 
@endif 
+0

Gut zu wissen, dass es nicht mehr benötigt wird. Aber nachdem ich 'Route :: group (['middleware' => 'web'], function() {' von meiner routes.php entfernt habe, scheint die Variable '$ success' immer noch leer zu sein, so dass es nicht zu sein scheint Problem hier – klokklok

+0

Bitte überprüfen Sie die aktualisierte Antwort –

+0

Funktioniert auch nicht Es scheint einfach nicht die Nachricht zu übergeben, es bleibt leer – klokklok

4

können Sie verwenden diese:

return redirect()->back()->withSuccess('IT WORKS!'); 

und verwenden Sie diese in Ihrer Ansicht:

@if(session('success')) 
    <h1>{{session('success')}}</h1> 
@endif