2016-05-22 14 views
17

Sto cercando di ottenere un messaggio di successo sulla mia home page su laravel.Laravel 5.2 reindirizza indietro con messaggio di successo

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

Per qualche motivo la variabile $ successo non ottiene alcun valore dopo l'esecuzione di questo codice.

Il codice che sto usando per visualizzare il messaggio di successo:

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

Ho aggiunto la home page e newsletter al gruppo web middleware in routes.php come questo:

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

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

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

Qualcuno ha idea del perché questo non sembra funzionare?

risposta

40

È necessario rimuovere il middleware web da routes.php. L'aggiunta manuale del middleware web causa session and request related problems in Laravel 5.2.27 and higher.

Se non ha aiutato (ancora, tenere routes.php senza web middleware), si può provare po 'diverso approccio:

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

Visualizzazione messaggio se esistente:

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

Buono a sapersi non è più necessario. Ma dopo aver rimosso 'Route :: group (['middleware' => 'web'], function() {' dal mio routes.php la variabile '$ success' sembra ancora vuota, quindi non sembra essere il – klokklok

+0

Si prega di verificare la risposta aggiornata –

+0

Non funziona o Sembra non passare il messaggio attraverso il quale rimane vuoto – klokklok

4

è possibile utilizzare questo:

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

e utilizzare questo a suo avviso:

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