Laravel 5.2 - Session::get 不工作

Laravel 5.2 - Session::get not working

我想为用户显示 'falsh-message' 我开始使用以下代码在 routes.php 中重定向他:

Route::get('/alert',function () {
    return redirect()->route('home')->with('message', 'This is a Test Message!');
});

在我包含在主视图中的 alerts.blade.php 中,我想阅读此消息:

Route::group(['middleware' => ['web']], function () {
  Route::get('/alert',function () {
        return redirect()->route('home')->with('message', 'This is a Test Message!');
    });
});

我的会话将设置在 storage\framework\sessions 下,代码如下:

a:5:{s:6:"_token";s:40:"8304u3fjR9EhvA88QMVGQnGcgdUcWoZj9LrHaDPh";s:7:"message";s:23:"This is a Test Message!";s:5:"flash";a:2:{s:3:"new";a:0:{}s:3:"old";a:1:{i:0;s:7:"message";}}s:9:"_previous";a:1:{s:3:"url";s:22:"http://localhost/alert";}s:9:"_sf2_meta";a:3:{s:1:"u";i:1452937821;s:1:"c";i:1452937821;s:1:"l";s:1:"0";}}

但问题是 Laravel 没有给我消息的输出,因为它是空的。所以也许有人可以帮助我。

routes.php :

Route::group(['middleware' => ['web']], function () {
    Route::get('/', [
        'uses' => '\App\Http\Controllers\HomeController@index',
        'as' => 'home',
    ]);
    Route::get('/alert',function () {
        return redirect()->route('home')->with('message', 'This is a Test Message!');
    });
});

web 中间件组包含会话所需的所有中间件。您的 alert 路由在中间件组中,因此它可以正确设置会话,但是您的 home 路由也需要在 web 中间件组中才能读取会话。

您可能应该将 home 路由放在 routes.php 文件中的 web 中间件中以使其工作

明确插入会话闪存数据..

Route::get('/alert',function () {
    $request->session()->flash('message', 'Task was successful!');
    return redirect()->route('home');
});

如果你这样写:

Route::get('/alert',function () {
    return redirect()->route('home')->with('message', 'This is a Test Message!');
});

您将在名为 $message 的视图中找到一个变量;尝试检查 echo $message;

一次性使用;你也可以这样写:

Route::get('/alert',function () {
    $request->session()->flash('message', 'This is a Test Message!');
    return redirect()->route('home');
});

也是一次性使用,但需要开启session。 如果你想永久地在会话中发送消息,你可以写:

Route::get('/alert',function () {
    $request->session()->put('message', 'This is a Test Message!');
    return redirect()->route('home');
});

希望这能帮助其他人更清楚地理解。