laravel5.2 フラッシュメッセージ機能が動かない
ネットを見ると
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; class WelcomeController extends Controller { public function index(Request $request) { $request->session()->flash('message', 'こんにちは'); return redirect('test'); } }
からの
@if (Session::has('message')) {{ Session::get('message') }} @endif
でOK!的な感じが多い。簡単!いいね!ってんでやってみたけどちっともでない。
調べるとありました。
ふーむー。ミドルウェアかー。意味はまだ分からんけど。 Kernel.phpをみたら
<?php namespace App\Http; use Illuminate\Foundation\Http\Kernel as HttpKernel; class Kernel extends HttpKernel { protected $middleware = [ \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, ]; protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, ], 'api' => [ 'throttle:60,1', ], ];
となってて、僕のroutes.phpは
<?php Route::group(['middleware' => 'web'], function () { Route::get('/', 'WelcomeController@index'); Route::get('test', 'TestController@index')->name('test');; });
となっていたので、
Route::group(['middlewareGroups' => 'web'], function () {
に変更。うまくいきました。