2016-05-22 13 views
17

私はlaravelの私のホームページに成功メッセージを返そうとしています。Laravel 5.2リダイレクト成功メッセージ付き

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

何らかの理由で、このコードを実行した後に変数$ successに値が設定されません。

私は大成功のメッセージを表示するために使用しているコード:

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

私はこのようなroutes.phpの中のWebミドルウェアグループにホームやニュースレターのページを追加しました:

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

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

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

なぜこれがうまくいかないのか誰にも分かりますか?

答えて

40

ミドルウェアをroutes.phpから削除する必要があります。 webミドルウェアを手動で追加すると、session and request related problems in Laravel 5.2.27 and higherが発生します。

それは(まだ、ウェブミドルウェアなしroutes.phpを保つ)助けていなかった場合、あなたは少し違ったアプローチを試すことができます。

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

が存在する場合、メッセージを表示する:

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

これ以上必要でないことを知っておいてください。しかし、 'Route :: group(['middleware' => 'web']、my routes.phpからfunction(){'を取り除いた後、 '$ success'変数は空であるように見えます。ここに問題があります – klokklok

+0

更新された答えを確認してください –

+0

これは動作しませんメッセージの空きがなくなっていないようです – klokklok

4

次のことができます

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

0を使用してください。
@if(session('success')) 
    <h1>{{session('success')}}</h1> 
@endif 
関連する問題