Laravel 5.2会话没有持续

时间:2016-06-03 13:10:46

标签: php laravel session web

最近我一直在Laravel 5.2的一个项目上工作,现在我遇到了没有持久的会话问题。我已经阅读了大部分有关此问题的问题,但每个人都有与我已经尝试过的相同的答案 - 应用网络中间件。

我读过有一个新的L5.2更新,默认情况下已经应用了Web中间件组。我用php artisan route:list检查了我的路线,我可以看到每条路线只有1个网络中间件应用。

我正在使用$request->session()->put('key', 'value')创建会话,但只要我评论该行,就无处可见会话。

修改

我想在访问新闻页面时在控制器内设置会话,但我也在一个简单的测试路径上尝试过。我设置的路线是news/{id},我想在/

的首页上使用它

我希望将最近访问过的网页存储在会话中,以便我可以在首页上向用户显示。

会话配置文件我没有动过。所以它使用文件驱动程序

1 个答案:

答案 0 :(得分:1)

以下是用于项目的经过测试的路线 请使用中间件而不是路由文件中的函数

routes.php文件

// Only as a demo
// Use a middleware instead

function addToSession ($routeName) {
    $visited = session()->get('visited', []);
    array_push($visited, $routeName);
    session()->put('visited', $visited);
}

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

Route::get('/second', function () {
    addToSession('/second');
    return view('welcome');
});

Route::get('/third', function () {
    addToSession('/third');
    return view('welcome');
});

Route::get('/history', function() {
    return session()->get('visited');
});

/ history路由将返回具有历史记录的JSON。