会话数据被破坏

时间:2017-02-02 20:59:28

标签: php laravel session

这是我将一些数据存储到会话中的代码:

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

我删除了所有评论,因此您更容易看到重要内容。

所以是的,我的会话以某种方式被清空了。

2 个答案:

答案 0 :(得分:2)

转到你的app / Http / Kernel.php并使用$ middlewareGroup变量在StartSession之后添加你的中间件。见下文......

\Illuminate\Session\Middleware\StartSession::class,
\App\Http\Middleware\MyMiddleware::class,

答案 1 :(得分:1)

您应该在StartSession中间件之后加载中间件。