最近我一直在Laravel 5.2的一个项目上工作,现在我遇到了没有持久的会话问题。我已经阅读了大部分有关此问题的问题,但每个人都有与我已经尝试过的相同的答案 - 应用网络中间件。
我读过有一个新的L5.2更新,默认情况下已经应用了Web中间件组。我用php artisan route:list
检查了我的路线,我可以看到每条路线只有1个网络中间件应用。
我正在使用$request->session()->put('key', 'value')
创建会话,但只要我评论该行,就无处可见会话。
修改
我想在访问新闻页面时在控制器内设置会话,但我也在一个简单的测试路径上尝试过。我设置的路线是news/{id}
,我想在/
我希望将最近访问过的网页存储在会话中,以便我可以在首页上向用户显示。
会话配置文件我没有动过。所以它使用文件驱动程序
答案 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。