这是我将一些数据存储到会话中的代码:
.dea
数据被成功写入会话,我知道因为dump打印它。 现在我正在尝试使用session() - > put,我也尝试了session($ array)。
当我尝试从中读取所有数据时(使用下面的代码),我得到一个空数组。
class SiteController extends Controller
{
function changeLang($lang){
//session(["lang"=>$lang]);
session()->put('lang', $lang);
dump(session()->all()); // variable lang is inside session
return Redirect::back();
}
}
这是我的session.php(不是我改变了什么):
class MyMiddleware
{
public function handle($request, Closure $next)
{
dump(session()->all()); // I get an empty array here
return $next($request);
}
}
我删除了所有评论,因此您更容易看到重要内容。
所以是的,我的会话以某种方式被清空了。
答案 0 :(得分:2)
转到你的app / Http / Kernel.php并使用$ middlewareGroup变量在StartSession之后添加你的中间件。见下文......
\Illuminate\Session\Middleware\StartSession::class,
\App\Http\Middleware\MyMiddleware::class,
答案 1 :(得分:1)
您应该在StartSession
中间件之后加载中间件。