Laravel 5.2 - Session ::无法正常工作

时间:2016-01-16 09:59:08

标签: php laravel session laravel-5 laravel-5.2

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

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!');
    });
});

4 个答案:

答案 0 :(得分:0)

web中间件组包含会话所需的所有中间件。您的alert路由位于中间件组中,因此它会正确设置会话,但您的home路由也需要位于web中间件组中才能读取会话。< / p>

答案 1 :(得分:0)

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

答案 2 :(得分:0)

明确插入会话Flash数据..

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

答案 3 :(得分:0)

如果你这样写:

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');
});

这也是一次性使用,但您需要启用会话。 如果你想永久地在会话中留言你可以写:

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

希望这有助于其他人更清楚地理解。